ACM
tinyliang
tinyos 研究生生活 cc2420芯片源码分析
展开
-
poj 3263 线段树解法 哎,还有更加简单的思想,不过我纯属自己找事做,权当联系线段树了
题意不说了,我的解法,将所有的牛的高度都置成H,那么当然询问一个[f,t]的时候,先看看 f 和 t 的高度是否符合,不符合的cut成符合的,即和t一样高。然后查看[f+1,t-1]区间里的最高的高度tem是多少,如果tem比f的高度要高的话,将整个[f+1,t-1]区间的高度都cut掉((tem-f的高度)+1).对线段树使用懒操作,这里一开始出现了错误,哎,maxt函数写错了。还是不太熟悉线段树,接着刷题记住,如果对一个区间操作,那么肯定需要考虑 3个情况,进入3种不同的分支。切忌,也许你不懂的,哈哈原创 2011-05-13 15:42:00 · 452 阅读 · 0 评论 -
poj 2985 并查集 + 线段树
<br /> <br /> <br />此题主要在于构造线段树<br />struct tnode<br />{<br />int left,right,sum;<br />} ;<br />sum表示的意思是,具有left到right这个区间的总个数,对于left==right的话,含义更加明显,表示的是具有left个猫的组数。<br /> <br /> <br />此题注意两个地方,1)对于如果处于同一个组的时候不能再做这个change操作,我WA一次,2)不能使用cin,cout,会TLE<br />原创 2011-05-13 09:50:00 · 597 阅读 · 0 评论 -
poj3277 线段树 + 离散化 WA2次 long long freopen
<br /> <br /> <br /> <br />首先说一下这题的想法,其实就是求总面积,我对x轴进行建线段树,需要离散化。<br /> <br />建完线段树以后从新扫描输入的数据,把对应的区域里的高度置成相应的高度,这里需要比较,如果 此区域的之前的高度,比将要加入的高度要低,那么就替换成新高度,相当于覆盖了旧的不能做的高度。<br /> <br /> <br />这里需要注意的一个问题,由于数据值很大,所以需要使用 long long 存储结果,还有对于long long 型第一次使用,哎,竟然要原创 2011-05-14 09:39:00 · 462 阅读 · 0 评论 -
树状数组 学习
对于线段树,主要是编程比较麻烦,而树状数组编程比较容易,对于一些问题,使用树状数组会比较方便。c[i]表示的是区间长度为 2的(i的后连续的0的个数)幂次:2^k(k为最后的连续的0的个数)原数组a[]hint:c数组和a数组都是从下标为1开始的1)对于树状数组某一个区间的修改操作:假设需要修改a[k];首先,我们只要知道哪些c里面记录的包含了a[k]这个元素。如果包括的话,它也需要被修改。由于树状数组的结构定义的特点,我们能知道。例如:假设a的第di=3个数被修改了,那么包含di的区间的c[i],di的末原创 2011-05-13 23:22:00 · 405 阅读 · 0 评论 -
trie树 寻找以当前输入的字符串为前缀的字典里有多少个
<br /> <br /> <br />题:<br />http://acm.hrbeu.edu.cn/index.php?act=problem&id=1007&cid=27<br /> <br /> <br />题意很简单,也很快想到了用tire树,但是有人说他不用也能A,应该是数据比较弱,当然我是为了训练的,所以找了个水题测试了自己编写的。要当模板使用。<br /> <br /> <br /> <br />#include<memory.h> #include<string> #include<s原创 2011-05-17 06:26:00 · 523 阅读 · 0 评论 -
trie树 寻找以当前输入的字符串为前缀的字典里有多少个
<br /> <br /> <br />题:<br />http://acm.hrbeu.edu.cn/index.php?act=problem&id=1007&cid=27<br /> <br /> <br />题意很简单,也很快想到了用tire树,但是有人说他不用也能A,应该是数据比较弱,当然我是为了训练的,所以找了个水题测试了自己编写的。要当模板使用。<br /> <br /> <br /> <br />#include<memory.h> #include<string> #include<s原创 2011-05-17 06:26:00 · 456 阅读 · 0 评论 -
思考 如何判断图存在环,存在环的数目,无向图,有向图
<br /> <br /> <br /> <br />首先,对于无向图的判环,我看到了edelweiss写的方法,挺好,就是使用标号法,对于无向图,我们存储的是双向的。我们使用DFS来判断环是否存在。对于范问一个节点时,将其标号,自己孩子的标号是自己的编号加1,如果访问一个节点的时候,当它已被访问过,那么判断其标号+1是否和自己相等,其实这里就是将双向边的影响去掉。如果不等,说明其就是环。<br /> <br /> <br />现在我在思考的问题是,如何利用这个方法<br />1)判断无向图中有几个环?<b原创 2011-05-20 10:24:00 · 4106 阅读 · 2 评论 -
hoj 2275 Number sequence 树状数组解法
<br />这题是我学习树状数组做的第一个题目,一开始对树状数组还没有理解的十分清楚,看完这个代码的时候,觉得,其实,利用lowbit计算区域,然后,一个大的区域的结果实际上就是几个小区域的和,觉得,对于lowbit这个函数需要理解清楚。<br /> <br />对数组a,做树状数组c,<br /> <br />lowbit(1) 1 表示 c[1] 实际上记录的区间的大小是1个,即a[1]<br />lowbit(2) 2 表示 c[2] 实际上记录的区间的大小是2个,即a[1]+a[2]<br原创 2011-05-01 08:04:00 · 700 阅读 · 0 评论