2020.02.22【NOIP提高组】模拟B 组反思总结

这次比赛得了120分,第5名,不过一堆人第五名。

T1 奖励卡

赛时

比赛得时候看着这题愣是没看懂,也分析不出来样例是怎么来的, 所以瞎打了一个dfs,错了,以后一定要加强阅读能力和增加数学知识。

赛后

听了正解后,又询问了一下别人,得出了结果:dp;
f 1 i , j f1_{i,j} f1i,j 表示有 i i i 个人和 j j j 个人已被选中,并且小X选I卡,所得到的被抽中的可能性。
f 2 i , j f2_{i,j} f2i,j 同理
那么说,状态转移方程就是:
t = 2 ( a − i ) + ( b − j ) + 1 t=2(a-i)+(b-j)+1 t=2(ai)+(bj)+1
f 1 i , j = 2 / ( t + 1 ) + 2 ( a − i ) / ( t + 1 ) ∗ f 1 i + 1 , j + ( b − j ) / ( t + 1 ) ∗ f 1 i , j + 1 f1_{i,j}=2/(t+1)+2(a-i)/(t+1)*f1_{i+1,j}+(b-j)/(t+1)*f1_{i,j+1} f1i,j=2/(t+1)+2(ai)/(t+1)f1i+1,j+(bj)/(t+1)f1i,j+1
f 2 i , j = 1 / t + 2 ( a − i ) / t ∗ f 1 i + 1 , j + ( b − j ) / t ∗ f 1 i , j + 1 f2_{i,j}=1/t+2(a-i)/t*f1_{i+1,j}+(b-j)/t*f1_{i,j+1} f2i,j=1/t+2(ai)/tf1i+1,j+(bj)/tf1i,j+1
然后,若 i + j ≥ n i+j≥n i+jn 或者 i > a i>a i>a 或者 j > b j>b j>b 的时候, f 1 i , j = 0 f1_{i,j}=0 f1i,j=0 f 2 i , j = 0 f2_{i,j}=0 f2i,j=0;
可以用递归或者循环(需要倒着循环,显而易见)实现。

T2 假期计划

赛时

比赛的时候就想到了要用最短路来打,一开始没有想到怎么打,后面发现一个特殊的性质:对于每条路,都至少有一个枢纽,而且枢纽最多不过200个,这么说,思路就很清晰了。

我们可以对每一个每个枢纽做一遍spfa,然后对于每个询问,如果 a a a 不是枢纽(如果是枢纽答案就很显然了吧),那么我们 a − > b a->b a>b 的最短路就是从 a a a 到与 a a a 直接相连的枢纽再到 b b b ,为什么不用到其他的枢纽呢?因为你要到其他的枢纽,必然要经过其中一个与它直接相连的枢纽,不错吧?

赛后

同赛时

T3 IQ测试

赛时

比赛的时候想到了正解,但是觉得应该会MLE,然后就用链式前向星打了个贪心,结果没注意细节,TLE60->WA20,下次要注意细节!

赛后

听了正解后不经感叹,自己离正解就那么一点点!
这道题思路就是你用一个变量假如说 m n mn mn 吧,记录住当前最后一个数的位置在原数列的哪里,然后每次二分找到当前这个数所在的位置,其中位置用vector存,在线做。

总结

这次比赛略粗心,而且怀疑自己的想法,以后要坚定自己的想法,而且要细心。总结起来就是4个字:胆大心细!
对了别忘了我的blog
欢迎大家提出意见!

你可能感兴趣的:(纪中比赛反思)