摘要: 题目:http://poj.org/problem?id=2584 以人和衣服作为点,建立超级源点和超级汇点,人连边权为1的边,衣服对源点连边权为件数的边(别弄乱顺序); 试图写构造函数,但CE了,最后只好用冗杂的写法。 代码如下: 阅读全文
posted @ 2018-03-19 23:54 Zinn 阅读(172) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; queueq; int INF=1e9; int n,m,head[10005],cur[10005],ct=1,s,t,d[10005],ans; struct N{ int to,next,w; }edge[200005]; void add(int x,int y,in... 阅读全文
posted @ 2018-03-19 23:04 Zinn 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=2228 dp[i][j][0/1]表示前i小时中第j小时睡(1)或不睡(0)的最优值; 注意第一个小时,若睡则对最终取结果有要求,即第n个小时必须睡,所以据此DP两遍; 可以开滚动数组,否则容易MLE。 代码如下: 阅读全文
posted @ 2018-03-19 22:55 Zinn 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3585 二次扫描与换根法,一次dfs求出以某个节点为根的相关值,再dfs遍历一遍树,根据之前的值换根取最大值为答案。 代码如下: 阅读全文
posted @ 2018-03-19 22:46 Zinn 阅读(186) 评论(0) 推荐(0) 编辑