2012年5月22日

poj 3468 A Simple Problem with Integers 数据结构

摘要: 线段树水题写splay练手 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 #define MAXN 100000+100 7 struct node 8 { 9 long long sum,father,left,right,adt,cnt,num; 10 }; 11 node tree[MAXN]; 12 int top=0,n,m,root; 13 long long a[MAXN]; 阅读全文

posted @ 2012-05-22 22:29 myoi 阅读(197) 评论(0) 推荐(0) 编辑

2012年5月21日

快速傅里叶变换 FFT

摘要: 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<vector> 6 #include<algorithm> 7 using namespace std; 8 #define MAXN 550000+100 9 #define PI 3.14159265358 10 #define EPS 1e-2 11 char a[MAXN],b[MAXN]; 12 int n,m,top=0,label=0 阅读全文

posted @ 2012-05-21 21:31 myoi 阅读(264) 评论(0) 推荐(0) 编辑

poj 2480 数论

摘要: 题意:求∑gcd(i, N) 1<=i <=N思路:求出所有约数欧拉函数 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<algorithm> 6 using namespace std; 7 #define MAXN 10000 8 long long Div[MAXN],prime[MAXN],factor[MAXN],l[MAXN],p[MAXN]; 9 bool use[70000];1 阅读全文

posted @ 2012-05-21 14:47 myoi 阅读(221) 评论(0) 推荐(0) 编辑

2012年5月19日

zoj 2334 Monkey King 左偏树+并查集

摘要: 题意:有一群猴子,每一只有一定的强壮值刚开始,每个人都不认识别人有m次争吵若x,y争吵如果 x认识y 输出-1如果x不认识y 则x认识的猴子中(包括自己)当前强壮值最大的和y认识的猴子中(包括自己)当前强壮值最大的决斗决斗完之后,决斗的两只猴子,强壮值减半(10->5,5->2) 且x认识的猴子和y认识的猴子都相互认识了 输出其中当前强壮值的最大值多组数据思路:左偏树 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #inc 阅读全文

posted @ 2012-05-19 19:46 myoi 阅读(569) 评论(0) 推荐(1) 编辑

2012年5月16日

bjoi 2010 次小生成树

摘要: 题意:求无向图的严格次小生成树思路:综合前两篇文章http://www.cnblogs.com/myoi/archive/2012/05/13/2498184.htmlhttp://www.cnblogs.com/myoi/archive/2012/05/14/2500371.html 1 //严格 2 #include<iostream> 3 #include<cstring> 4 #include<cmath> 5 #include<cstdio> 6 #include<vector> 7 #include<algorith 阅读全文

posted @ 2012-05-16 19:52 myoi 阅读(329) 评论(0) 推荐(0) 编辑

2012年5月14日

SPOJ 3978 Distance Query tarjan求LCA

摘要: 题意:给一棵边带权的树有m个询问x,y 询问x到y的路径上的最长边和最短边思路:离线做用tarjan求LCA每次合并时,只把儿子往根上合并 保证并查集的某一节点的祖先也都是这个节点在树上的祖先并查集每个节点再维护一个与父亲节点的路径上的最长边和最短边 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<vector> 6 #include<algorithm> 7 using namespace s 阅读全文

posted @ 2012-05-14 21:02 myoi 阅读(505) 评论(0) 推荐(0) 编辑

2012年5月13日

ural 1416 Confidential 次小生成树

摘要: 题意:求无向图的最小生成树和非严格次小生成树思路:http://www.cppblog.com/MatoNo1/archive/2011/05/29/147627.aspx 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<cstdio> 5 #include<vector> 6 #include<algorithm> 7 using namespace std; 8 #define MAXM 300010 9 #define MAX 阅读全文

posted @ 2012-05-13 16:09 myoi 阅读(373) 评论(1) 推荐(0) 编辑

2012年5月10日

bjoi 2009 函数依赖 强连通分量

摘要: 对于30%的测试数据,满足只有二元联系(即不存在函数依赖左边或右边的属性个数超过 1 个)。对于 40%的测试数据,满足N ≤ 5。对于 70%的测试数据,满足M ≤ 100。对于100%的测试数据,满足 1 ≤ N ≤ 10, 1 ≤ M ≤ 1000。思路:因为n非常小我们可以把2^n个关系全部列出来按照题目的关系建立有向图求强连通分量 缩点 拓扑排序答案就是 某个节点自己在头节点中,而他的真子集都不在 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstr 阅读全文

posted @ 2012-05-10 19:56 myoi 阅读(216) 评论(0) 推荐(0) 编辑

2012年5月6日

北京集训 区间覆盖 费用流

摘要: 第三题区间覆盖(Interval)(Interval.pas\c\cpp)【问题描述】有N 个开区间(ai,bi),每个区间有一个权值wi,现在请你选择其中的一些区间,使得选出的区间权值总和最大,并满足数轴上的任意位置都被覆盖不超过K次。思路:最大费用最大流先离散化离散化后 第i个点和i+1个点连一条容量为K,费用为0的边对于每个区间 ai到bi连一条容量为1 费用为wi的边费用流求之 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 # 阅读全文

posted @ 2012-05-06 19:44 myoi 阅读(271) 评论(0) 推荐(0) 编辑

zybbs 1001 狼抓兔子 平面图最大流

摘要: 题意:现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1,y+1) 道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角为兔子的两个窝,开始时所有的兔子都聚集在左上角(1,1)的窝里,现在它们要跑到右下解( 阅读全文

posted @ 2012-05-06 15:43 myoi 阅读(711) 评论(0) 推荐(0) 编辑

导航