摘要: 题目要求1到n点的最大容量的增广路。 听说是最短路求的,然后乱搞就A了。。 大概能从Bellman-Ford的思想,dk[u]表示从源点出发经过最多k条边到达u点的最短路,上理解正确性。 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 阅读全文
posted @ 2016-01-01 23:11 WABoss 阅读(309) 评论(0) 推荐(0)
摘要: 单整点集V是无向无环图,可以看作树。 dp[u]表示,选取u点时u点和它子树最大的权和。 而某个点不选,那么它和它子树的最大权和是0,因为题目求的集合要连通。 状态转移方程是:dp[u]=∑max(0,dp[son(u)])。 1 #include<cstdio> 2 #include<cstdli 阅读全文
posted @ 2016-01-01 21:31 WABoss 阅读(281) 评论(0) 推荐(0)
摘要: 跑完Floyd后,d[u][u]就表示从u点出发可以经过所有n个点回到u点的最短路,因此只要根据数组对角线的信息就能判断是否存在负环。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<string> 5 # 阅读全文
posted @ 2016-01-01 15:43 WABoss 阅读(841) 评论(0) 推荐(0)
摘要: 边取反,从汇点跑单源最短路即可。 1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #include<algorithm> 5 using namespace std; 6 #define MAXN 1111111 7 #defin 阅读全文
posted @ 2016-01-01 09:40 WABoss 阅读(267) 评论(0) 推荐(0)