摘要: 题意:问有多少个N(N 2 #include 3 typedef long long LL; 4 LL dp[70][70][101]; 5 LL pow_mod(LL a,LL p,LL n){ 6 if(p == 0) return 1; 7 LL ans = pow_mod(a,p/2,n); 8 ans = ans * ans % n; 9 if(p%2 == 1) ans = ans * a % n;10 return ans;11 }12 13 int main(){14 int nkase;15 scanf("%d... 阅读全文
posted @ 2013-10-31 21:31 浙西贫农 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一张有n个点的图,有的边又向,有的边无向,现在要你破坏一些路,使得从点0无法到达点n-1。破坏每条路都有一个代价。求在代价最小的前提下,最少需要破坏多少条道路。(就是说求在最小割的前提下,最小的割边数)这题做了长姿势了。偏移量的方法没有想到。如果采用偏移量的方法的话,把每条边的边权w设为w'=w*MOD+1,然后求最小割,那么maxflow%MOD就是答案了。前提是MOD足够大。另外一种方法,利用一个结论:最小割边一定满流,满流的未必是最小割边。假设所有满流的边都是最小割边,把它们的cap全部设为1,其余未满流的边的cap设为inf,然后求最小割,答案就是最小割值。虽然没搞懂 阅读全文
posted @ 2013-10-31 21:22 浙西贫农 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一颗树和树根,每条树边都有边权,要你砍断一些边,使得所有的叶子节点都与根节点分离,且要求砍断的边权之和最小。以树根root为源点S,添加一个汇点T,对所有的非跟叶子节点i,加边(i,T,inf),求最小割即可。 1 #include 2 #include 3 #include 4 #include 5 #define INF 1<<30 6 #define maxn 1010 7 #define maxm 10000 8 using namespace std; 9 10 int u[maxm],v[maxm],next[maxm],w[maxm];11 int firs 阅读全文
posted @ 2013-10-31 09:56 浙西贫农 阅读(154) 评论(0) 推荐(0) 编辑