自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习笔记

每一天,每一步,回头看看,希望脚印始终没有淡去。

  • 博客(13)
  • 收藏
  • 关注

原创 poj1088(记忆化搜索)

题意:中文题,不解释. 分析:应该是很典型的DP吧,用记忆化搜索实现,因为每个map[i][j]的dp[i][j]都是相同的值,也就是重叠子问题,所以只要每个点都搜索出最长路径,也就是dp[i][j].最后双重循环暴力找到最长的路径输出就行了. wa的原因:题意的情况想少了,写代码的时候忘记了判断与四周相等的情况. AC的代码:#include #include using namespac

2012-06-06 12:42:08 428

原创 poj1961(2406的推广)

题意:求前i个字符中重复的个数k(如果可以的话) 分析:完全就是2406,只不过2406是判断全部的 AC代码: #include #include using namespace std; char t[1000005]; int next[1000005]; int m; void get_next(){ next[0]=-1; int i,j=-1; for(i=1;i<m;

2012-06-04 21:32:35 427

原创 poj2406(next数组理解)

题意:能用最长子串重复得到原串,问重复多少次. 分析:需要考虑这种特殊情况azazaza,正确答案应该是1,所以说,需要判断len%(len-next[len])?=0.别的就是直接输出len/(len-next[len])就行,因为next[len]代表着后缀与前缀多少位是相同的,所以说,最长的肯定是len/(len-next[len]). wa的原因:1A AC代码:#include

2012-06-04 20:53:40 433

原创 poj2752(对next数组理解)

题意:求出串中所有前缀和后缀相同的情况的相同字串的长度. 分析:因为要找后缀与前缀相同,只需判断next中最后一个的值,因为next[len]代表的是s[0~next[len]-1]与s[len-next[len]~len-1]两个串相同,所以如果存在,则继续向前找,如果最后以为就不匹配说明只有当长度为len时才会发生前缀与后缀相同.也就是说原串全选,前缀和后缀肯定是相同的. wa的原因:1A

2012-06-04 20:35:02 344

原创 poj3461(kmp模版题)

题意:求短串在长串中有几个. 分析:直接kmp模版.因为next是指短串对自身的匹配,其中的数字next[i]一定满足s[0~next[i]-1]与s[i-next[i]+1~i]是相同的串,所以很显然可以用此方法求出在长串对短串的匹配,如果j==lenb,则证明有该串. wa的原因:1A AC代码: #include #include #include using namespace s

2012-06-04 20:23:06 455

转载 程序员技术练级攻略(转自http://coolshell.cn)

月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历

2012-06-01 17:52:47 822

原创 poj1226(字符串)

题意:找出给出的n个串中的最长的公共字串,输出其长度。 分析:这道题比较水,KMP,string,strstr应该是都能过的,暴力就行。 wa的原因:这题比较颠覆我的世界观,一模一样的代码,scanf无限TLE,全改成cin AC。不理解是为什么,求大牛指点。 AC的代码:#include #include #include #include using namespace std; cha

2012-06-01 14:03:33 391

转载 KMP算法详解

kmp模板:#include #include using namespace std; string a,b; int p[10000]; int i,j,m,n; int main(){ cin>>a; cin>>b; n=a.length(); m=b.length(); p[0]=-1; j=-1; for(i=1;i<=b.le

2012-06-01 12:39:32 301

原创 poj2121(简单模拟题)

题意:给出英文,翻译成数字形式。 分析:运用sscanf函数将每个数字提取出来,用num[i]存这些数字,数字中有100,1000,1000000是位权,因为如果像普通的比如twenty two的话,只要简单的相加。那么碰到关键词我是这么想的,我建立四个int型变量hsum,tsum,msum和sum。看名字可以看出hsum就是用来存碰到关键词hundred时的和,其他依此类推,sum就存没有关

2012-06-01 07:49:52 962

原创 poj1067(经典博弈问题)

题意:有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 分析:不明原理,通过画二维图,可以发现(0,0)(1,2)(3,5)(4,7)(6,9)……于

2012-05-30 20:29:35 645

原创 poj3628(01背包问题)

题意:就是给出n和b,然后给出n个数,用这n个数中的某些,求出一个和,这个和是>=b的最小值,输出最小值与b的差。 分析:这道题很简单,是很明显的01背包问题,这里的n个物品,每个物品的重量为c[i],价值为w[i]并且c[i]==w[i],,容量为所有c[i]的和sum。只要在f[]中从头开始找,找到一个最小>=b的就是题目要的解 wa的原因:最开始把b当成了容量。 AC的代码: #

2012-05-30 20:05:15 897

原创 poj2419

题意:个人认为此题主要就是读题,读题明白了就没啥了。题意就是说每个人都听到有树倒下,如果两个人听到的倒下的树都一样,则他们是一个想法,否则就不是一个想法。题目让求一共有多少种不同的想法。 分析:非常暴力的模拟了,开一个二维数组[i][j],i表示人的编号,j表示该人听到的数编号。初始想法数为人数,暴力对比,如果两人所有j相同,则想法数n--;全都循环过输出。 wa的原因:1A。 AC代码:

2012-05-29 19:33:05 595

原创 poj1363

题意:给出数据,如果进栈的方式为1……N,判断该数据能否是出栈的顺序。 分析:用栈的知识模拟就可以A掉,用x表示进栈的数,y表示出栈的下一个需要的序号,用数组模拟栈,比较x,y是否相等,若等,则等于进栈再直接出栈;若不等,则x进栈,再比较y和栈顶是否相等,若等,出栈,否则进行下一次循环,追后若y都能出来, 则有该序列,否则输出No。 wa的原因:代码实现的时候少写了一条语句。 AC代码:

2012-05-29 16:07:43 1311

空空如也

空空如也

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

TA关注的人

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