【集训】jzoj 2017.7.8 noip模拟赛A 总结

时间:2022-10-19 21:05:42

今天估分180,实际得分145,不fst实际能得的分230.

7.8的比赛要注意:
0. 摆好蒟蒻心态 (好像达成了吧?)
1. 至少打完三题暴力再死磕一题! (今天只有一题暴力要打..)
2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟,不要把容易拿的分丢掉了。这时候暴力应该已经想好了,打完所有有分的题之后再来继续想。(这个做到了,没有想法的第三题也想了20分钟虽然没什么收获)
3. 记得多根据数据范围与问题想一下学过的算法。(要养成习惯)

第一题是挖掉一个空的多重背包。按惯例拆前缀和和后缀和,有50分。要说一下多重背包的问题。有两种方法,一种是单调队列,另一种是拆物品。
单调队列复杂度更优(少一个log),但编码复杂度高很多。
将能拿a次的物品分为 ki=02i+(a2k),k=log2(a)
只要证明1..a每种次数都可以凑出来即可。
对于小于等于 2k 的数,显然可以凑出来。
对于大于 2k 的数x,可以先拿一个 (a2k) 变为 2k+1a
又因为 a>=2k ,所以剩下的一定小于等于 2k
这样物品数就由N变为N log n,时间复杂度从 O(nVcnt)O(nlognV)

第二题比较简单,自己构造一下就可以了。

第三题要转换模型成逆序对加减数目。

7.10的比赛要注意:
0. 摆好蒟蒻心态,不要自以为是
1. 至少打完三题暴力再死磕一题!
2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟,不要把容易拿的分丢掉了。 打完所有有(暴力)分的题之后再来继续想。
3. 记得多根据数据范围与问题想一下学过的算法。