练习笔记:
A:https://codeforces.com/contest/1467/problem/A
一开始以为是 987654321.....
交了两发WA。慢慢想想就是如果说我是第二个号码放8就是98901234....
交了就是AC
B: https://codeforces.com/contest/1467/problem/B
B啊, 暴力打出来
对于每个i,他在可能是a[i-1]-1,a[i-1],a[i-1]+1,a[i+1]-1,a[i+1],a[i+1]+1
每个都试试就是可以了(但是我WA 4发,草!)
C:https://codeforces.com/contest/1467/problem/C
这题有点奇怪啊
两种情况:
1:全拿同一个包(牺牲整个包)
2:牺牲两个包的最小值
看出来就是可以过了
D:https://codeforces.com/contest/1467/problem/D
啊这题怎么感觉比C简单(????可能C的情况怪怪的)
dp[i][j] 表示当前在位置 i, 还能走 j 步时总方案数。
基础状态: dp[i][k]=1 i->[1,n]
转移状态:dp[i][x]=dp[i+1][x+1]+dp[i-1][x+1]
起初我以为每个走过就是dp[i][0] 但其实不是的
那么我们要算走过多少次。
让a[i]=走过 i 多少次
a[i]=sum(dp[i][j]*dp[i][k-j]) 其实就是分成两个路途就是j长和k-j长。乘起来加上即可
然后就简单啦: 让ans=sum(a[i]*h[i])
修改时就是减掉再加回。
E: https://codeforces.com/contest/1467/problem/E
啊啊啊啊图论题!!!
就考虑到达一个节点u, 如果说我接下来往下走时看到另一个v拥有a[u]的节点的话呢我就需要标记(子树v和子树u外不行包括u,v自身)
如果说我现在发现子树并不满足全部颜色a[u]的节点都在里面, 意思就是我需要标记整个u的子树
那么如果说我们老实一个一个标记的话,复杂度O(n^2)
但是我们可以使用时间戳来差分具体方法可以前往洛谷或者https://codeforces.com/contest/1467/submission/225621920
啊ABC好难xd!!!
标签:695,contest,codeforces,Codeforces,https,Div,com,1467,dp From: https://www.cnblogs.com/yonglicp/p/17736269.html