noip第十场模拟赛

时间

8:00~9:10 T1写了dfs的暴力,按照题意模拟一遍,不会任何的优化,想着用链状结构来维护一个点左右的第一个0,但是写不出来,所以就弃了。看到了mod=1e9+7,应该是dp,但是又不知道从何写起。

9:10~10:10 T2开始找规律,构造题,之前考的都是会出现规律的,所以就开始找,实在是找不到,只好先往后写。

10:10~12:10 T3,写了暴力,发现复杂度高死了,就打了表,然后推k=1的递推式,i代表选到当前物品,j是选择了多少个物品,k是选择的总价值。
f [ i ] [ j ] [ k ] = f [ i − 1 ] [ j ] [ k ] f[i][j][k]=f[i-1][j][k] f[i][j][k]=f[i1][j][k]
f [ i ] [ j ] [ k ] + = f [ i − 1 ] [ j − 1 ] [ k ] f[i][j][k]+=f[i-1][j-1][k] f[i][j][k]+=f[i1][j1][k]
表示选到第i个时,不选择就直接又i-1转移,若选择就是下面的。
推出来后写,实现上一直有问题,时间逼近,一直压着自己耐心去调,最后一点点的,突然发现了,自己求的答案是询问的n+1,x+1的情况,然后直接改,再把两个代码和到一起,比赛结束就剩3min了,还有取模,狂补。

题目

T1 RE了,各种相乘,不停取模,就能拿到40分。这种写法的关键就是找到几个素数,1331 13331,1e6+7,相乘取模就能hash掉,当然还可以更直接的把数字变成字符串,然后放到map里,进行特判。

T2 暴力分很好打,写一个大法师,将每一个端点变为1,其余为0,01枚举,正解是构造,一个大模拟。

T3 答案是对了,只是没有在每次循环的时候把设的 f 、 a n s f、ans fans数组清0,不过幸好自己分段写,不然就惧了。没有清空数组,没有调零变量,这种错误已经不止一次在考场上扔分了。写另一份代码的时候想到了要清空,(明摆的要清空),但是当时想着图简单,先去掉了循环,就不在去写memset了,这种问题也都是自己的仔细问题,完全可以写一个注释去提醒自己。

T4 大家清一色的30,自己没写,这道题的送分确实挺多的啊。正解是线段树去维护,代码还是无法实现。

总结

明显这次又陷进去了,虽然考试结束前改出了代码,但是这种细节还是没抓到,甚至连试试样例都没有,直接提交了,(不过样例也没法拯救,前面小数据打的表会直接输出,后面的只有一组,样例当然直接过),写分段的时候,另外去写部分分代码的时候也要按全部去写,别到最后,代码合并时出现问题,考虑问题时想到了,当时为什么没立刻做出改变。

这场考试策略上的问题太大了,这问题的根本是读题时发生的,读题时没决定好正确的做题顺序,为了20分扔了30分,当然T1的25分也RE,T2的暴力也没去写,如果说正确的做题顺序就应该是T4→T1→T3→T2。顺序确实挺重要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值