随笔分类 - 算法资料
摘要:/*************************LCS/LIS/LCIs模板总结:*************************//*****************************************************LCS:最长公共子序列求长度为 len1 的序列 A 和长度为 len2 的序列 B 的LCS注意:序列下标从 0 开始滚动数组写法。返回 LCS 长度*****************************************************/int LCS(int len1,int len2){ memset(dp, 0, si...
阅读全文
摘要:链接:http://poj.org/problem?id=2187http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#problem/EBeauty ContestTime Limit:3000MSMemory Limit:65536KTotal Submissions:24254Accepted:7403DescriptionBessie, Farmer John's prize cow, has just won first place in a bovine beauty contest, earning the
阅读全文
摘要:博弈知识汇总有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走
阅读全文
摘要:题目:http://poj.org/problem?id=3714http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27048#problem/DRaidTime Limit:5000MSMemory Limit:65536KTotal Submissions:7355Accepted:2185DescriptionAfter successive failures in the battles against the Union, the Empire retreated to its last stronghold. Dependi
阅读全文
摘要:查看资料:lrj 《算法竞赛入门经典》相关概念:最大流:(Maximum-Flow Problem) 从源点 S 中间经过一些点,一些的物品运送到汇点 t 。 中途每两点间都有个最大运送物品数。 求从 s 到 t 最多能运送多少物品。 容量: 对于一条边 (u,v),它的物品上限(能够运送的物品最大数量)称为容量 (capacity), 记为 c(u,v) (对于不存在的边 (u,v) , c(u,v) = 0)流量: 实际运送物品数称为流量 (flow) 规定:f(u,v) 和 f(v,u) 最多只有一个正数(可以均...
阅读全文
摘要:下面的源代码是修改的了时间差精确到了纳秒级别的了,但是还是感觉很有误差。无论怎么测,总是快排比归并快,即使是测试数据的数组长度在10以内。 前面一样的程序写的是时间精确到微秒级的,数组长度大概在一万以内的,就是归并排序快了,大于这个长度的快速排序比较快。综合上面的情况,数组小时,二者时间差也不会太多,所以个人认为还是快速排序比较好了,唉还是觉得归并比较简单好写,弱爆了啊。。。#include<cstdio>#include<Windows.h>#include<ctime>#include<cstdlib>#include<cstring&
阅读全文
摘要:来源:http://my.oschina.net/dianpaopao/blog/83844#include<stdio.h>#include<stdlib.h>#define NMAX 10000000#define SQRN 10000int main(){ int n; scanf("%d",&n); static char a[NMAX]; unsigned long k,i; for(k=2;k<=SQRN;k++) if(!a[k]) for(i=2*k;i<n;i+=k) a[i]=1;...
阅读全文
摘要:来源:http://my.oschina.net/dianpaopao/blog/83844#include<stdio.h>
#include<stdlib.h>
#define NMAX 10000000
#define SQRN 10000
int main()
{ int n; scanf("%d",&n); static char a[NMAX]; unsigned long k,i; for(k=2;k<=SQRN;k++) if(!a[k]) for(i=2*k;i<n;i+=k) a[i...
阅读全文
摘要:kb神的博客:http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.htmlkb神的推荐: http://blog.163.com/baobao_zhang@126/blog/static/48252367200862682748461/ http://www.cnblogs.com/DreamUp/archive/2010/08/18/1802039.html http://www.cppblog.com/xfstart07/archive/2010/08/05/122356....
阅读全文
摘要:转载来自:http://blog.csdn.net/sunandice/article/details/6560889问题描述:约瑟夫环(Josephus)问题是[1]由古罗马的史学家约瑟夫(Josephus)提出的,他参加并记录了公元66—70年犹太人反抗罗马的起义。约瑟夫作为一个将军,设法守住了裘达伯特城达47天之久,在城市沦陷之后,他和40名死硬的将士在附近的一个洞穴中避难。在那里,这些叛乱者表决说“要投降毋宁死”。于是,约瑟夫建议每个人轮流杀死他旁边的人,而这个顺序是由抽签决定的。约瑟夫有预谋地抓到了最后一签,并且,作为洞穴中的两个幸存者之一,他说服了他原先的牺牲品一起投降了罗马。 约
阅读全文
摘要:原创链接:http://blog.163.com/zhaohai_1988/blog/static/209510085201263011135062/感谢作者,感谢kb神的推荐~~~~~~问题描述RMQ问题是求给定区间中的最值问题。对于长度为n的数列A,回答若干查询RMQ(A, i, j)。返回数组A中下标在[i,j]里的最小值的下标。比如数列 5,8,1,3,6,4,9,5,7 那么RMQ(2,4) = 3, RMQ(6,9) = 6.解决问题最简单的解法时间复杂度是O(n),就是对于每一个查询遍历一遍数组。但是当n非常大的时候,并且查询次数非常多的时候,这个解决方案就不是那么高效了。使..
阅读全文
摘要:写的很好的一个模板,感谢作者。文章来源:http://www.cppblog.com/acronix/archive/2010/08/23/124470.aspx?opt=admin下面是 m^n % k 的快速幂:// m^n % k
int quickpow(int m,int n,int k)
{ int b = 1; while (n > 0) { if (n & 1) b = (b*m)%k; n = n >> 1 ; m = (m*m)%k; } retur...
阅读全文
摘要:转载复制来自:http://blog.163.com/36142114@qq.com/blog/static/168816502201072042753754/原作者:牛b的Matrix67(听说是初中时写的)百度文档下载:http://wenku.baidu.com/view/600f37d380eb6294dd886c18.html###推荐kb神的KMP博客:http://www.cnblogs.com/kuangbin/archive/2012/08/14/2638803.html还是推荐到我的CSDN中看 :http://blog.csdn.net/cfreezhan/article
阅读全文

浙公网安备 33010602011771号