上一页 1 ··· 30 31 32 33 34
摘要: 这道题,在前一道题目的基础上,好理解多了,个人在代码中写了自己的一点理解也算是一个拓展应用吧,个人感觉对并查集有了更深的理解了,具体怎么样,继续做题看看吧大牛还给了一个一般情况下维护偏移量的公式感谢这位大牛分享:这里将两个集合并起来并将所挂集合偏移量指向:kind[b]=(kind[x]-kind[y]+4)%3;想想上一题是不是也很类似呢其实上一题的公式也可以改成kind[b]=(kind[x]-kind[y]+3)%2; 不管是几个动物循环,都能得到类似的结论,所以以后碰到4,5,6,7。。。个动物的食物链,你应该也会做了吧?^_^View Code #include<stdio.h 阅读全文
posted @ 2011-05-04 20:30 枕边梦 阅读(643) 评论(0) 推荐(1) 编辑
摘要: 唉,这道题更是让我花费了不少时间,好多大牛都说很简单,但是…………很无语就对了,一下部分接受转自http://www.cppblog.com/abilitytao/archive/2010/05/14/98899.html大牛虽然解释了好多,但综合了很多的博客里面的介绍之后,我终于有了些许的感悟,我想,结合我在程序中的注释应该会容易理解一点大牛的介绍:题目的大意是给出n只bug和m次观察到的性行为,并以此为依据判断两只bugs是不是有同性恋行为(gay)。比如3只bug1 2有性行为2 3有性行为1 3有性行为---->>>>>首先1,2是异性。---->& 阅读全文
posted @ 2011-05-03 16:03 枕边梦 阅读(271) 评论(0) 推荐(1) 编辑
摘要: 嘿嘿,第一道并查集的题目,一个基本的应用,求一个集合的元素个数,不过中间同样涉及了俩个基本的操作,查找还有合并题目大意:有n个学生(标号为0 to n-1),m个学生社团,给出每个社团里所有学生的标号,并假设0号学生患有SARS(社团里只要用一个学生患病,则整个社团里的学生都会被隔离),问最后一共会有多少学生被隔离?这是一个最基础的并查集的应用,扫描每一个社团,只要两个学生出现在同一个社团,则将这两个集合合并起来,最后输出0号点所在集合的rank值集合(rank值记录这个集合中的元素个数并用一个flag值跟踪0号元素所在集合标号)即可。#include<stdio.h>#defin 阅读全文
posted @ 2011-05-03 11:37 枕边梦 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 悲剧呀,这道题目搞了那么久,原来是离散化的方法出现问题了,悲剧,实在悲剧线段树+离散化 今天做了这道题目的时候,也算是明白了离散化的基本意思,因为题目的数据范围很大,1-10000000,直接线段树的话,先不说内存会不会爆,这么大的范围估计也是TLE了.仔细读题,可以看到1<=N<=10000,也就是说最多只有10000个点,如果每个点都不同,那么最多也只有20000个数据,那么离散后的范围就相当小;离散化的大概思路:比如说给你一组数据141000100000,如果直接开线段,显然是浪费,那么我们只要进行映射:1142100031000004接下来我们只要对1234建立线段树就行了 阅读全文
posted @ 2011-05-01 13:15 枕边梦 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 基础的线段树区间修改和区间求和贴代码吧#include <stdio.h>#define N 100010struct Node{ int l,r; __int64 c,sum;//用c来存储在这个节点存储的增值,用sum来存储在该节点对应的区间上的和。 }p[3*N];int que[N];void build(int k,int s,int t){ int kl,kr,mid; p[k].l=s;p[k].r=t;p[k].c=0; p[k].sum=que[s]; if(s==t) return ; mid=(s+t)>>1;kl=k<<1;kr=kl 阅读全文
posted @ 2011-04-28 21:47 枕边梦 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 先来谈谈lazy思想。做了这么多的线段树,应该总结一下,lazy是一个很经典的思想。所谓lazy,就是懒惰,每次不想做太多,只要插入的区间完全覆盖了当前结点所管理的区间就不再往下做了,在当前结点上打上一个lazy标记,然后直接返回。下次如果遇到当前结点有lazy标记的话,直接传递给两个儿子,自己的标记清空。这样做肯定是正确的。我们以染色为例,可以这样想,如果当前结点和它的子孙都有lazy标记的话,必定是子孙的先标记,因为如果是自己先标记,那么在访问子孙的时候,必定会将自己的标记下传给儿子,而自己的标记必定会清空,那么lazy标记也就不存在了。所以可以肯定,当前的lazy标记必定覆盖了子孙的,. 阅读全文
posted @ 2011-04-28 21:37 枕边梦 阅读(901) 评论(0) 推荐(0) 编辑
上一页 1 ··· 30 31 32 33 34