摘要:
https://codeforces.com/gym/101889/attachments 题意 环形DP 显然$\gcd(i,n)$相等的$i$,他们的情况完全一致(都可以由多次跳$\gcd(i,n)$步转移而来) 那么我们枚举$n$的因数,注意是因数而不是质因数 例如对于$2$和$4$ \[ 2 阅读全文
摘要:
https://codeforces.com/gym/101196/attachments 环形/区间DP 先将区间复制一遍 令$f[i][j]\(表示区间\)[i,j]\(删去\)[i+1,j-1]$的数的最小代价 之所以这样定义是因为这样比较好转移 \[ f[i][j]=\min_{i<k<j} 阅读全文
摘要:
https://codeforces.com/gym/101473/attachments 题意 环形DP $dp[i]$表示$1~i$被处理完最少需要覆盖多长的补丁 用二分找出上一个转移位置 然后枚举序列情况即可 复杂度$O(n^2log n)$ #include<cstdio> #include 阅读全文
摘要:
http://poj.org/problem?id=2228 题意 环形DP 本来考虑把区间复制一遍,然后截取一段区间的方法,结果假掉了 实际上特判一下就行了 要么第一时刻不睡觉,直接$DP$ 要么第一时刻睡觉,那么最后一时刻必须睡觉,再$DP$一次 $Over$了。 \(C++ Code:\) # 阅读全文
摘要:
http://poj.org/problem?id=2152 题意 树型DP 数据范围较小,首先,暴力求出两点间距离 令$f[i]$表示以$i$为根的子树全部被消防站覆盖的最小花费,$g[i][j]$表示以$i$为根的子树全部被消防站覆盖,且$u$使用$i$的消防站的最小花费 \[ f[u]=\mi 阅读全文