2020.08.06【省选B组】模拟 总结

估分:(70 + 0 + 0 = 70)
考场:(70 + 20 + 0 = 90)
被爆踩了。。。
(T3)没有打暴力(DP),巨亏了。。。

(T1)

这道题考场直接找规律。。。
找完规律发现答案是某些数的倍数,由于会算重所以要容斥。
(O(2^15*T))(TLE),没有想到优化于是(70)收场。。。
其实我们可以把那些最小公倍数都存下来。。。发现其实有很多重复的数,
于是我们可以用(map)来存下来,发现一共只有(600+)个不同的数,每次扫一遍即可。

(T2)

这道题。。。真的牛逼了。。。
考场以为就是个贪:排序加指针一遍扫。
结果呢?是这样没错,但是姿势不对(。•ˇ‸ˇ•。),贪心完全没有正确性。
显然我们可以根据题意网络流建图,但是时间是(n^3),我们发现最大流=最小割
所以我们尝试求最小割,((m-x)*(n-y)+∑_{i=1}^{x}m[i]+∑_{i=1}^{y}n[i])

其中(m[i],n[i])肯定是从小到大选的,我们先将(n[],m[])排序。
我们发现答案在(x)不变时有单调性,于是枚举(x),然后用指针代替(y)即可。
PS:排序用桶排效果更佳。

(T3)

(DP)的时候思路还是太窄了,总是想着整行整行地转移。。。
其实要多想想插头(DP),轮廓线(DP)之类的啊。。。
(ylrc),这题(tm)其实就是个哔——————————。
我们用三进制来存储上两行的状态(高级的很)
然后一行行来转移,转移则用暴力(dg)即可。
注意要开滚动&三进制不能用或、与操作!!!

总结

果然还是所有题都要打,暴力也有(20)啊啊啊啊
还有优化这种东西还是要认真思考思考的,万一过了呢?
(DP)的时候思路还是太窄了,总是想着整行整行地转移。。。
其实要多想想插头(DP),轮廓线(DP)之类的啊。。。
加油ヾ(◍°∇°◍)ノ゙

转载需注明出处。
原文地址:https://www.cnblogs.com/jz929/p/13448546.html