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\)之类的啊。。。
加油ヾ(◍°∇°◍)ノ゙

posted @ 2020-08-06 19:48  jz929  阅读(90)  评论(0编辑  收藏  举报