自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 poj 2406 Power Strings

kmp的应用,找出一个字符串的循环节出现的次数。以下内容转载于:http://bbezxcy.iteye.com/blog/1377787在这里我们假设这个字符串的长度是len,那么如果len可以被len-next[len]整除的话,我们就可以说len-next[len]就是那个最短子串的长度    为什么呢? 假设我们有一个字符串ababab,那么next[6]=4对

2016-05-28 11:19:56 274

原创 poj 2823 Sliding Window

单调队列的应用。#include #include #include using namespace std;#define max_n 1000005#define inf 0x3f3f3f3fdeque m_min,m_max;int data[max_n];int n,k;void getmax();void getmin();int main(){ scan

2016-05-28 10:00:36 236

原创 poj 2752 Seek the Name, Seek the Fame

题意是判断一字符串中前缀和后缀一样的位置,例如:abcabc中,前缀abc有一样的后缀abc,abcabc本身也是一个前缀,同时也是后缀这就与next数组的意义联系起来了。假设next[len] = k,也即:s[1,k] = s[len-k+1,len]此时s[1,k]是前缀后缀。处理完next[len]后跳转到next[k+1],用这种方法可以得到所有的前缀后缀。

2016-05-27 20:28:32 207

原创 nyoj290 动物统计加强版

动物统计加强版时间限制:3000 ms  |  内存限制:150000 KB难度:4描述在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单。科学家想判断这片森林中哪种动物的数量最多,但是由于数据太过庞大,科学家终于忍受不了,想请聪明如你的ACMer来帮忙。输入第一行输入动物名字的数量N(1输出输出

2016-05-25 19:54:00 241

原创 poj 1195 Mobile phones

这道题的题意是先给一个数字i,假如i==0,就对将数组array初始化为0,i==1,随后给出x,y,data,然后使array[x][y] += data,i==3,随后给出x1,y1,x2,y2,则输出sum(array[x1][y1]...array[x2][y2])这一道题需要用到二维树状数组来做.#include #include using namespace std;

2016-05-23 21:14:10 203

原创 二维树状数组

二维树状数组真难理解,推荐一篇博客,多少还是有帮助的。彻底弄懂二维树状数组 - Pilgrim - 博客频道 - CSDN.NET http://blog.csdn.net/u011026968/article/details/38532117不得不说,树状数组真是难理解,代码虽然容易,就是真难理解。

2016-05-23 20:27:50 394

原创 poj 1088 滑雪

滑雪Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 89306 Accepted: 33538DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等

2016-05-22 21:13:49 182

原创 nyoj 117 求逆序数

求逆序数时间限制:2000 ms  |  内存限制:65535 KB难度:5描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。现在,给你一个N个元素的序列,请你判断出它的逆序数是多少。比如 1 3 2 的逆序数就是1。输入第一行输入一个整数T表示测试数据的组

2016-05-22 17:32:34 182

原创 最长公共子序列

用动态规划解决最长公共子序列问题,推荐一篇博客。三、动态规划算法解最长公共子序列LCS问题(2011.12.13重写) - 结构之法 算法之道 - 博客频道 - CSDN.NET http://blog.csdn.net/v_JULY_v/article/details/6110269这一篇博客讲解的还是很详细的。

2016-05-22 11:07:44 239

原创 poj 2492 A Bug's Life

并查集的高级应用.#include using namespace std;#define max_n 2300int father[max_n];int relation[max_n];int n,m;void init(){ for(int i=1;i<=n;i++) { father[i] = i; relation[i] = 0; }}int find(

2016-05-21 19:56:58 244

原创 poj 1330 Nearest Common Ancestors

一道典型的lca问题,这一道用tarjan算法即可解决。详情参照了这篇博客:LCA问题的Tarjan算法 » NoAlGo博客 http://noalgo.info/476.html#include #include #include #include using namespace std;#define max_n 10007vector tree[max_n];/

2016-05-20 20:43:34 200

原创 nyoj 528 找球号(三)

找球号(三)时间限制:2000 ms  |  内存限制:3000 KB难度:2描述xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?输入有多组测试数据。每组数据包括两行。第一行是一个整数N(0随后的一行是N个数,

2016-05-19 20:53:50 300

原创 nyoj 138 找球号(二)

找球号(二)时间限制:1000 ms  |  内存限制:65535 KB难度:5描述在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY”,表示说出M(0<M<=100)个随机整

2016-05-19 20:22:07 385

原创 nyoj 1085 数单词

数单词时间限制:2000 ms  |  内存限制:120000 KB难度:4描述为了能够顺利通过英语四六级考试,现在大家每天早上都会早起读英语。LYH本来以为自己在6月份的考试中可以通过六级,可是没想到,成绩出来以后,居然没有通过。所以他不得不付出更多的时间来学习英语。要想通过六级,最基本的要求就是词汇量。为了能够更快的记住一些陌生单词,LYH有时会找一

2016-05-18 20:11:28 458

原创 poj 3264 Balanced Lineup

这一道题是说给出一串牛的高度,然后给出一段区间,求此区间中最高的牛和最低的牛的高度差。用rmq或线段树就能做出来.#include #include #include #include using namespace std;#define max_n 100010int f[max_n];int max_f[max_n][20];int min_f[max_n][20];

2016-05-17 16:39:29 214

原创 poj 3368 Frequent values

这一道题的题意是说给出一段序列,然后任给一段区间,求此区间出现最多的数字的数目。比如:给一段序列: 10 3 12 12 8 8 8 8 8 7 11 11然后,所给区间为:2,4 则出现最多的数字的数目为23,10 则出现最多的数字的数目为5此题需要对原数列进行处理,如果f[i] == f[i-1],那么,f[i] == f[i-1] + 1;若f[i]!=f[i-1

2016-05-17 16:10:07 215

原创 poj 1703 Find them, Catch them

我参照了下边这篇博客:http://www.voidcn.com/blog/u011008379/article/p-5747778.html这道题就需要虚点的存在。比如:输入D 1 2那么就为2创造一个虚点2',让2‘和1同在一个集合。为1创造一个虚点1’和2同在一个集合。判断a和b的时候,若a,b同在一个集合,那么a,b在同一个帮派。若a和b‘在一个集合,则a,b在不同

2016-05-11 17:13:45 257

原创 kmp算法

推荐一篇博客,kmp讲的很详细,讲的很不错http://blog.csdn.net/v_july_v/article/details/7041827

2016-05-09 20:08:48 256

原创 nyoj 123 士兵杀敌(四)

描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是在南将军询问他某个人的军功的时候,快速的报出此人的军功,请你编写一个程序来帮助小工吧。假设起始时所

2016-05-09 20:06:07 785

原创 nyoj 119 士兵杀敌(三)

描述南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号士兵中,杀敌数最高的人与杀敌数最低的人之间军功差值是多少。现在,请你写一个程序,帮小工回答南将军每次的询问

2016-05-07 09:27:12 380

原创 nyoj 130 相同的雪花

存储雪花时可以把雪花的长度和一并存储起来,然后根据雪花的长度和做一个hash表。判断2个雪花是否相同,就需要从雪花a和雪花b中找到雪花臂长度相同的2个位置。然后从这2个位置开始正序,逆序比较看是否能得到相同的序列。如果得不到,就从下一次长度相同的2个位置开始正序,倒序比较。#include #include using namespace std;#define max_n 1000

2016-05-04 20:58:02 337

原创 nyoj 1185 最大最小值

最大最小值时间限制:1000 ms  |  内存限制:65535 KB难度:2描述给出N个整数,执行M次询问。对于每次询问,首先输入三个整数C、L、R:    如果C等于1,输出第L个数到第R个数之间的最小值;    如果C等于2,输出第L个数到第R个数之间的最大值;    如果C等于3,输出第L个数到第R个数之间的最小值与最大值的和

2016-05-03 16:39:36 396

C++控制台贪吃蛇小游戏

一个用C++写的控制台贪吃蛇小游戏,可以在游戏的开始生成随机的地图,有计分功能,基本实现了贪吃蛇应有的功能,只是还有一些bug。注意用VS2015来打开该文件。

2016-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除