2011年9月6日
摘要: 不错的构图题。思路:和一般的最大流图论题一样,难点在构图上。刚开始有点想用二分,但其实不用什么二分匹配,有二分的思想即可,把cow二分成两批。即一个点拆成相连的两个点。然后左边是food的点,右边是drink的点。具体看图一目了然。#include<iostream>#include<queue>#include<algorithm>using namespace std;const int N=405;const int M=100000;int n,f,d;int edgehead[N];int k=1;bool visit[N];int pre[N]; 阅读全文
posted @ 2011-09-06 22:05 不是我干的 阅读(135) 评论(0) 推荐(0)
摘要: 是道不错的题目。最瘦生成树的定义:最长边和最短边之差最小的一棵生成树。思路是kruskal+枚举算法。这题让我明白枚举的角度选择问题真是有学问。刚开始一直没想明白要怎么枚举。后来参考了别人,枚举直接枚举最小生成树的最小边即可。求最小生成树时,我们用sort把边都排序了一边。注意:最小生成树求解过程是一种贪心算法。每次都选最短的边!故sort后我们从小到大枚举最小边。这样,当最小边确定后,用kruskal算法,它自动会生成一棵最小树,这棵最小树肯定是最小边已确定的最大边为最小的树。故枚举最小边这个算法是正确的。总而言之。要好好理解kruskal的贪心思想。#include<iostream 阅读全文
posted @ 2011-09-06 16:35 不是我干的 阅读(196) 评论(0) 推荐(0)