acm
文章平均质量分 75
killua7080
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj1274
今天没事做了第一道网络流的题,真是很神奇,可以把各种场景建模成网络流来做 poj3281也一样,先把食物当成源点然后流到奶牛,再从奶牛流到奶牛,再从奶牛到饮料。 #include #include #include #include #include #include int c[420][420],f[420][420],a[420]; int s=0,t,n,m; using namesp原创 2012-10-18 00:14:16 · 640 阅读 · 0 评论 -
zoj1654
参考《算法艺术与信息学竞赛》P334 皇家卫士 把每个横向线段当作集合A 每个纵向线段当作集合B 如果是空地则A,B中的点有一条边,最大二分匹配 如o*** 就对应了一条横向线段A1,和4条纵向线段B1,B2,B3,B4 其中A1和B1的交点是空地,所以他们之间有一条边,所以每个边都会对应一个点,这个点为一个横向线段和纵向线段的交点 #include #include #inc原创 2012-11-07 21:33:12 · 743 阅读 · 0 评论 -
hdu1823 二维线段树
#include #include #include #include #include #define MAX 101 #define L(x) (x<<1) #define R(x) (x<<1|1) using namespace std; class subnode { public: int l,r; double val; sub原创 2012-12-01 14:12:12 · 365 阅读 · 0 评论 -
zoj 1610 线段树
线段树 参考:http://wenku.baidu.com/view/aa601208763231126edb11ab.html 计算颜色时维护两个参数cl,cr,返回区间两端点的颜色 1,如果区间为单色则对应颜色+1 2.如果node。col为-1,则递归调用左右子区间,若返回的颜色相同 则对应颜色-1 详见代码#include #include #include #inclu原创 2012-11-16 12:31:47 · 245 阅读 · 0 评论 -
poj2353 数装数组
参考讲解http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees 提供sum和add操作每次操作复杂度o(logn) #include #include #include #define MAX 32002 using namespace std; int a[MAX]; int c[MA原创 2012-11-14 00:17:16 · 455 阅读 · 0 评论 -
匈牙利算法和km算法
匈牙利算法用来求二分图最大匹配 km算法求带权的最大匹配 参考http://wenku.baidu.com/view/be01d3e84afe04a1b071de54.html km算法 #include #include #include #include using namespace std; #define MAX 100 int n; int weight[MA原创 2012-11-08 13:00:00 · 2507 阅读 · 0 评论 -
zoj1157
#include #include #include #include #include #include #define MAX 1010 using namespace std; vectorname; bool can[MAX][MAX]; string recept[MAX]; string device[MAX]; bool map[MAX][MAX]; bool visit[MAX];原创 2012-11-07 19:55:49 · 347 阅读 · 0 评论 -
poj2239
#include #include #include #include #define MAX 501 int p,n; bool map[MAX][MAX]; bool visit[MAX]; int match[MAX]; bool find(int k) { int i,j; for(i=1;i<=n;i++) { if(map[k][i]&&visi原创 2012-11-05 22:52:17 · 336 阅读 · 0 评论 -
poj3041
#include #include #include #include #define MAX 501 int p,n; bool map[MAX][MAX]; bool visit[MAX]; int match[MAX]; bool find(int k) { int i,j; for(i=1;i<=n;i++) { if(map[k][i]&&visi原创 2012-11-05 22:37:00 · 301 阅读 · 0 评论 -
poj2536
#include #include #include #include #include #include #include #define MAX 101 using namespace std; int p,n; bool map[MAX][MAX]; bool visit[MAX]; int match[MAX]; struct point { double x; double y; }原创 2012-11-01 23:23:08 · 331 阅读 · 0 评论 -
poj1325
#include #include #include #include #define MAX 101 int p,n; bool map[MAX][MAX]; bool visit[MAX]; int match[MAX]; bool find(int k) { int i,j; for(i=1;i<=n;i++) { if(map[k][i]&&visi原创 2012-10-31 23:52:16 · 424 阅读 · 0 评论 -
poj 1469
#include #include #include #include #define MAX 302 int p,n; bool map[MAX][MAX]; bool visit[MAX]; int match[MAX]; bool find(int k) { int i,j; for(i=1;i<=n;i++) { if(map[k][i]&&visi原创 2012-10-30 23:09:33 · 360 阅读 · 0 评论 -
划分树
参考http://wenku.baidu.com/view/8fc6bc365a8102d276a22fa0.html 划分树可以用来以O(lg(n))时间求出任意区间第k大元素 觉得用到的思想和《算法导论》第九章p109的思想比较像,如果在一个序列里求第K大的元素,不一定需要对序列完全排序 而是每次都进行快排的一步,从序列中选出一个x把比x小的都放在x前大的都放在x后边,然后看x前有几个元原创 2012-12-01 20:22:41 · 329 阅读 · 0 评论
分享