POJ训练纪实
记录一个菜鸟ACMer的POJ训练之路
Tczxw
这个作者很懒,什么都没留下…
展开
-
POJ 3680 最小费用最大流
题意:给定n个带权开区间,选择其中一些使得权值最大并且区间重叠层数不超过k。题解:最小费用流,区间有两百个,可以用左边的点发出一条到右边的点的边,容量为1,费用为负的权值。然后从左往右将依次将相邻的两个点都连起来,权值为0,容量为k,也就是说,如果选了这个区间,就会从费用为负数的边流过去,否则,就是从这个费用为0的边流过去。然后建立一个虚拟源点与最左边的点相连,权值为0,容量为k,这样原创 2016-04-27 22:28:25 · 537 阅读 · 0 评论 -
POJ 1753 搜索
#include bool mp[6][6];int cnt;bool cmp(){ for (int i = 1; i <= 4; i++) for (int j = 1; j <= 4; j++) if (mp[i][j] != mp[1][1]) return 0; return 1;}void flip(int x, int y){ mp[x][y]原创 2016-05-02 19:56:47 · 388 阅读 · 0 评论 -
POJ 3164 最小树形图
#include #include #include #include using namespace std;const int maxn = 1E2 + 10;const int INF = 1 << 30;struct Edge{ int u, v; double w;};Edge edge[maxn * maxn];struct Node{ double x,原创 2016-05-02 22:37:16 · 404 阅读 · 0 评论 -
POJ 2773 容斥与二分
#include #include const int maxn = 1E6 + 10;int p[maxn], cnt, m, k;void init(){ cnt = 0; for (int i = 2; i * i <= m; i++) if (m % i == 0) { p[cnt++] = i; while (m % i == 0) {m /= i;}原创 2016-05-10 15:55:26 · 424 阅读 · 0 评论 -
POJ 1222 高斯消元法解开关问题
#include #include #include const int maxn = 30;int inp[maxn + 5][maxn + 5], kase, T;void gauss(){ for (int i = 0; i < maxn; i++) { int k = i; while (k < maxn && !inp[k][i])k++; for (int原创 2016-05-10 21:30:30 · 895 阅读 · 0 评论