2019.11.09题解
写在前面:
出题人为啥三道题一个中文两个英文感觉怪怪的
A. 合并集合
标签:
区间Dp
题解:
区间Dp的裸题,刚开考的时候有点紧张没想到Dp,打了一个假的贪心,后来想到Dp的时候觉得我打贪心就是个傻子
f[i][j]代表处理完[i,j]的最大收益:
f[i][j]=max{f[i][k]+f[k+1][j]+g[i][k]*g[k+1][j]}
其中g[i][j]代表[i,j]的不同元素个数,$ O(n^2) $预处理即可,总复杂度$ O(n^3) $
B. climb
标签:
二分+贪心
题解:
首先在可行范围内二分结束天数(可行范围指的是不会淹死且药品的增量为正,显然在这段区间内是单调的,而其他区间不会对答案产生贡献)
之后考虑枚举最后一天吃的药品,但是有一个问题:我们无法保证这个药片在最后吃时小D没有淹死,
所以继续二分出最大的能选的增量,之后就可以枚举并且O(1)查询啦
C. coin
标签:
博弈论之SG函数
题解:
30pts:考虑把行和列看成点,棋子看成边,边的权值就是是否为反,之后跑类似二分图染色的dfs,原理一样,只是相邻的颜色限制不同
100pts:只考虑有解的情况:对于每个联通块求出SG函数值,按奇偶分为
1>奇-偶/偶-奇 SG=2
2>奇-奇 SG=1
4>偶-偶 SG=0
最后把SG全部^即可