2013年3月10日

最大连续和

摘要: 写了一个最大连续和的题目,好久没写了。。。想想最大连续和有好多种写法、应该有O(n^2)的,O(nlogn)的 和 O(n)的!O(n^2)的很简单,就不说了。。。O(nlogn)的是用分治法,好复杂的说,没写过,也不会写……O(n)的算法还是比较巧妙的,在此复习一下:算法流程:1、先预处理一个数组s[Max] , s[i] = s[i - 1] + a[i];2、我们知道,当j确定时,“s[j] - s[i - 1]最大”的条件是s[i - 1]要最小! 因此我们只要扫描一次数组s,维护一个“目前遇到过的最小s”即可。 代码: for(int i = 1; i <= n; i +... 阅读全文

posted @ 2013-03-10 21:34 Hmm 阅读(1001) 评论(0) 推荐(0) 编辑

2013年2月26日

并查集初步

摘要: 题目:HDU 1213题意就是有一群人要去吃饭,但是不认识的不能坐在一起,这就要我们将认识的人合并……赤裸裸的并查集。但是开始有个天真的想法:用一个set数组记录,每次将有关系的人的值变为前一个人的值。然后仔细想一想明显是不行的……比如这个数据:1 - 2 , 3 - 4 , 2 - 3对于4个人的这个数据显然只需要一张桌子!因为都认识。。。。可是如果用上面的方法将会得到错误的答案!所以只能用并查集了~~不说了,贴代码+注释:#include <cstdio>#include <algorithm>int set[1050];int find(int x){ int t 阅读全文

posted @ 2013-02-26 17:49 Hmm 阅读(135) 评论(0) 推荐(0) 编辑

2013年2月7日

POJ 1061

摘要: POJ 1061 青蛙的约会(转取网上写的版本,感觉写的真的很好)公青蛙一开始在x位置,母青蛙在y位置。公青蛙每次跳m米,母青蛙每次跳n米,并且都是向右跳的。地球经线长度是L,然后地球是圆的,也就是说,跳到L、L+1、L+2……其实就是跳到0、1、2。 公青蛙想追母青蛙,问多少次后它们能跳到一起。如果它们永远不能相遇,就输出Impossible。很明显嘛,就是求一个k,使x + k*m ≡ y + k*n (mod L) 嘛,木有错吧?至少我是这么想滴!然后对方程化简咯,就变成(n-m) * k ≡ x-y (mod L)咯。然后这个方程其实就等价于(n-m)*k + L*s = x-y咯。这 阅读全文

posted @ 2013-02-07 23:05 Hmm 阅读(222) 评论(0) 推荐(0) 编辑

POJ 1228 —— “稳定”凸包

摘要: POJ 1228Grandpa's Estate这是个好题目,同时也是个不和谐的题目(不和谐原因是题目出的存在漏洞,数据弱,而且有些条件没给清楚,为了一个SB错误无限WA之后,终于AC)题意就废了我好长时间,唉……英语不好的鸭梨大……大意就是爷爷留了块土地给我,然而这块土地是以一些钉子来界定的,题目要做的就是给你一堆钉子的坐标(也就是凸包上部分的点),然后问你能不能唯一确定这块土地。问了下度娘,这个问题叫做“稳定”凸包问题,那么首先就要了解下“稳定”凸包的性质:(在此感谢XDruid博主)比方说有4个点:这4个点可以围成一个凸包,但是原始的凸包可能并不是这个样子的例如可能是这个样子:这 阅读全文

posted @ 2013-02-07 17:20 Hmm 阅读(356) 评论(0) 推荐(1) 编辑

2013年2月5日

POJ 1698

摘要: Just a Hook题意:给出一个区间N,开始区间内的每一点值都是1然后给出更新命令Q条,更新区间[x , y]的值为z求出区间N的总价值(长度 * 价值)-----------------------------------------------------看到1<=N<=100,000 ,0<=Q<=100,000显然一般的n^2算法必然会超时,故需要高效算法之前写过一个线段树(本题为这辈子写的第二个线段树),貌似差不多,故想到线段树特点:区间大,成段更新,查询区间总和,综合这些特点,线段树满足!代码参考了某博主的……贴上供以后复习用View Code #inc 阅读全文

posted @ 2013-02-05 23:47 Hmm 阅读(247) 评论(0) 推荐(0) 编辑

凸包学习小结

摘要: 这两天翻看了些许凸包的资料,在此留下学习脚印……凸包是啥呢……问度娘 = =、大家都知道的就不说了,很多资料都写了,而且目测写得也比我好多了吧……常用算法:枚举法 O(n ^ 3)的复杂度 , Graham扫描法 , 分治法(不懂....)让我兴奋的是,另一种网上资料难以找到的Graham扫描算法的变种:(LRJ训练指南上称作:Andrew算法)LRJ注释上写此种算法更快,且数值稳定性更好……故很想一试,奈何神牛就是神牛,他的介绍文字加起来不过1页……让我这个原来连凸包是什么都不懂的菜鸟鸭梨山大啊……后来,在捉题目的时候,翻看某博主的文章,里面写的与Graham算法完全不同,因为他不用将点按极 阅读全文

posted @ 2013-02-05 15:35 Hmm 阅读(470) 评论(0) 推荐(0) 编辑

导航