2014年7月29日
摘要: 题意:n个重量为1~n的球,给定一些编号间的重量比较关系,现在给每个球编号,在符合条件的前提下使得编号小的球重量小。(先保证1号球最轻,其次2号……)分析:拓扑排序,注意根据题的要求,要先保证1号球最轻,如果我们由轻的向重的连边,然后我们依次有小到大每次把重量分给一个入度为0的点,那么在拓扑时我们面... 阅读全文
posted @ 2014-07-29 19:24 一锅土豆 阅读(139) 评论(0) 推荐(0) 编辑
摘要: void toposort(int n){//该方法将优先队列(每次取出最大值)和拓扑排序结合 int i; priority_queue q; for(i=1;i s; int i; for(i=0;i1) flag=1; t=s.... 阅读全文
posted @ 2014-07-29 16:39 一锅土豆 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一些大写字母间的偏序关系,然后让你判断能否唯一确定它们之间的关系,或者所给关系是矛盾的,或者到最后也不能确定它们之间的关系。分析:用拓扑排序:1.拓扑排序可以用栈来实现,每次入栈的是入度为0的节点。1.拓扑排序的结果一般分为三种情况:1、可以判断2、有环出现了矛盾3、条件不足,不能判断.2... 阅读全文
posted @ 2014-07-29 12:08 一锅土豆 阅读(236) 评论(0) 推荐(0) 编辑
  2014年7月28日
摘要: 题意:见线段树 POJ 2352代码:#include #include #include using namespace std;const int MAX=200000;int bit[MAX],a[MAX];int i,n;int sum(int i){ int s=0; whil... 阅读全文
posted @ 2014-07-28 12:53 一锅土豆 阅读(85) 评论(0) 推荐(0) 编辑
  2014年7月26日
摘要: 如果在题目中使某个区间所有元素的对应值*x或+-x,直接用线段树对每个元素进行计算,时间复杂度升高为nlogn,而用lazy标记可以减小时间复杂度。假设需要对某区间+num;void pushup(int p){//数值向上传递 dat[p]=dat[2*p]+dat[2*p+1];}void... 阅读全文
posted @ 2014-07-26 18:42 一锅土豆 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 建造线段树void build(int p,int l,int r){ if(l==r) {dat[p]=a[l];return;} int mid=(l+r)/2; build(p*2,l,mid); build(p*2+1,mid+1,r); dat[p]=max(... 阅读全文
posted @ 2014-07-26 15:26 一锅土豆 阅读(128) 评论(0) 推荐(0) 编辑
  2014年7月25日
摘要: 题意:给出n个点的平面二维坐标,对于每个坐标,如果这个坐标跟(0,0)形成的矩形内包含的点数为 k (包含边界,但不包含坐标本身),那么这个坐标就是 level k。输出 level 0 – leveln-1的点数分别是多少。n个点按照纵坐标y升序给出。做法:见代码。代码:#include #inc... 阅读全文
posted @ 2014-07-25 11:43 一锅土豆 阅读(115) 评论(0) 推荐(0) 编辑
  2014年7月24日
摘要: 题意:三类动物A、B、C,A吃B,B吃C,C吃A。给出K句话来描述N个动物(各属于A、B、C三类之一)之间的关系,格式及意义如下:1X Y:表示X与Y是同类;2X Y:表示X吃Y。K句话中有真话有假话,当一句话满足下列三条之一时,这句话就是假话,否则就是真话。1)当前的话与前面的某些真的话冲突,就是... 阅读全文
posted @ 2014-07-24 15:17 一锅土豆 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题意:有N(N#include using namespace std;const int MAX=30000;int par[MAX+10],total[MAX+10],under[MAX+10];int get(int a){ if(par[a]==a) return a; ... 阅读全文
posted @ 2014-07-24 15:12 一锅土豆 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:nn个学生分属m个团体,(0#include using namespace std;const int MAX=30000;int par[MAX+10];int total[MAX+10];int getparent(int a)//获取a的根{ if(par[a]!=a) p... 阅读全文
posted @ 2014-07-24 14:59 一锅土豆 阅读(84) 评论(0) 推荐(0) 编辑