摘要:
匈牙利算法。在二分图中每行对应一个节点,每列对应一个节点,每个1对应一条连接该1所在行和列节点的边。如果最大匹配数==n则可行,否则不行。对于可行的情况,只需要每次交换两个列节点的编号,直到所有的匹配都是行号==列号的为止。View Code #include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <vector>using namespace std;#define maxn 105int n, ptn[maxn], ans[m 阅读全文
posted @ 2011-03-19 15:19
undefined2024
阅读(161)
评论(0)
推荐(0)
摘要:
欧拉函数的原始公式是用n连乘(1-1/pi)。pi是n的素因子。我们可以通过一个n^2级筛法的方式去筛,这样就保证了每个合数都会被其所有素因子筛一次,只要在筛的时候在其结果上乘上1-1/pi)即可。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 3000005double ans[maxn];bool prime[maxn];int next(int a){ a += 阅读全文
posted @ 2011-03-19 15:13
undefined2024
阅读(162)
评论(0)
推荐(0)