A.石子阵列
这不是和[HNOI2008]越狱 这题差不多吗(一个求合法方案,一个求不合法方案)
我们考虑第一个石头有m种选择,从第二个石头开始为了不重复,只有m-1种选择了
答案就是m * (m-1) ^ (n-1)
时间复杂度:O(log(n))
1 |
|
B.凤 凰
这题有点思维难度,一眼看还以为是树形dp。
我们发现每个节点都有鸟,所以从第一秒开始都有鸟到达终点,即到终点的时间都是连续的。
答案就是根节点的所有儿子树的大小取max,维护连通性可以用并查集。
时间复杂度:O(nlog(n)) (并查集有只log)
1 |
|
C.PH试纸
这题也是水题。
我们只要维护出两种颜色的个数,和两种颜色的1-个数的位置。
直接O(n)扫一边就好啦。
时间复杂度:O(n)
1 |
|
D.插排树
模板题,就是求最长路。
因为没有负边,所以最长路用spfa和堆优化dj都可以,建议dj(但我还是写了spfa)
看起来好像要每个点作为起点做一边最长路,其实不然,只要建一个超级源点0,它到其他点的距离为0即可
时间复杂度:O(EK)
1 |
|
E. 青蛙
又是道图论题,这题是最短路。
由于边权为1,能用的算法更多了,还能用bfs。
a能一步到b,就建一条a向b的值为1的有向边。
时间复杂度:O(EK)
1 |
|
F.三轮
这题就是简单的完全背包,又是模板题,没什么难度。
就是如果开二维数组的话会MLE,所以要滚存。
f[i][j]表示前i个数组成和为j的方案数
时间复杂度:O(n^2)
1 | f[0]=1; |
1 |
|