
APIO
文章平均质量分 68
njlcazl
这个作者很懒,什么都没留下…
展开
-
【APIO2010】【斜率优化DP】特别行动队
看到这道题会很容易想到是动态规划。然后朴素的方程也很容易写出:用f[i]表示将前i个士兵分组得到的最大战斗力,sum[i]表示前i个士兵战斗力总和f[i] = max{f[i], f[j]+ a * (sum[i] - sum[j]) ^ 2 + b * (sum[i] - sum[j]) + c}但是这样做是O(n^2)的,对于n的范围来数肯定超时。于是我们考虑f[i原创 2013-04-09 21:33:36 · 647 阅读 · 0 评论 -
【APIO2010】【树的直径】巡逻
当k = 1的时候,显然直接求出树的直径后减去路径上权值即可当k = 2的时候,我们可以先dfs出树的直径,然后将路径中的每一条路权值赋为-1,再求一次直径,把两次的直径长度减去,ans = ((n - 1) - len关于树的直径的求法,可以使用树的一个性质:树的直径的长度一定会是某个点的最长距离f[i]与次长距离g[i]之和。于是可以使用一次dfs求出次短路和最短路和的最大值即为原创 2013-04-09 21:40:43 · 852 阅读 · 0 评论 -
【APIO2009】【强连通分量】【DAG】抢掠计划
先将原图缩点,原图变为DAG,然后记忆化搜索找最大价值即可,水题。。。代码:#include#include#includeusing namespace std;const int maxn = 500000 + 10;struct pnode{ int pos; pnode *next; pnode(){} pnode(int pos,pnode *next):po原创 2013-04-10 21:36:31 · 793 阅读 · 0 评论