2016.08.19 初中部 NOIP普及组 模拟赛

来源:互联网 发布:淘宝免费开店教程 编辑:程序博客网 时间:2024/06/08 06:01

总结


这次比赛发挥得不错(主要是题目水)


T1:水题,先算两条直径和中间的点,是4r+1

然后算四分之一圆里的点,公式sqrt(r^2-i^2)(1<=i<=r)记得取整!



T2:也是水题,广搜就能过,每次搜到一个点,看下是否比原先答案小,是的话加入队列,更新答案。记得判断特殊情况a[r,c]='*',直接输出-1


T3:之前做过类似的题——迷宫出口,这道题也很简单,三个暴力,第一个全排列,第二个枚举符号,第三个计算,判断下整除和小于等于24就好了。计算方法:

设有i,j,k,l四个数。(每次计算结果用tot存)(下面要注意顺序,不要前后颠倒)

第一步,我们先算i和j,

第二步,有两种情况,第一种是算k和tot,第二种是算tot和k

第三步,有两种情况,第一种是算l和tot,第二种是算tot和l。

算完后,判断下tot<=24,tot>ans就可以了,注意判断整除的情况。

最后还有一种特殊情况

先算1和2,再算3和4,最后算它们俩的结果。和上面一样判断即可。

i,j,k,l通过循环判断枚举。


T4:一道不水的题,我用的是暴力,时间复杂度O(n!),只能得47.6分。

正解:传说中的状压dp

设状态:f[i,j]表示二进制状态压成十进制后为i,当前到达第j点的最小值。

判断:如果i and 1 shl(j-1)<>1 shl(j-1)那么就不要执行这次循环

上一个状态(到达j前)为k,k=i-(1 shl (j-1))。

再枚举x,表示x->j。

再判断,k和x是否正确,方法和上面一样。

正确的话,f[i,j]=min{f[k,x]+a[x,j]}

答案:min{f[(1 shl n)-1,i]}


分数:100+100+100+47.6=347.6

考得不错!下次继续努力!



3 0
原创粉丝点击