- 博客(12)
- 资源 (4)
- 收藏
- 关注
原创 kmp 算法(有待理解)
求字符串b 是否是字符串a 的子串对于字符串设两个指针 i 和 j a[i-j+1……i] 与字符串 b[1……j]是完全相等的例如 1 2 3 4 5 6 7 8 9 10 11a: a b a b a b a a b a b b: a b a b a c b 1 2 3 4 5 6 7 令i =11 则 j =4 a串中从i-j 到 i
2012-04-25 21:12:53 345
原创 字符串的输入注意
注意:对输入字符串,字符的命令行,一定要在后面加一个getchar(),否则下一个输入会被最后的回车符覆盖;例如:for(i=0;icin>>map[i];getchar()sum=0;cin>>k;;如果不加getchar() 此时k的值就是输入的x的值,而原来k的值会被被覆盖;但是加上以后就不会出错!!!!!郁闷 cin>>x;
2012-04-25 16:55:04 635
原创 POJ 2590 Steps
这道题证明我真的是一个大脑简单的人物,看到这句“The length of a step must be nonnegative and can be by one bigger than, equal to, or by one smaller than the length of the previous step”我一直认为是从x 到y 第一步为1 最后一步为1 中间每个step可以比上一个
2012-04-19 17:12:41 611
原创 poj 1775 Sum of Factorials
题目大概意思是:让判断一个数n是否能够用若干个数的阶乘之和表示例如9=1!+2!+3!其中有一句我觉得有问题,导致我多提交一次 就是Σ1=1 1, xi >= 0, xi = xj if( i = j).就是说xi==xj的时候i==j 但是 0!==1!但是i!=j这可怎么办啊于是我就把0!擅自改成1 了结果错了,后来又改成1 结果就对了,哎!深深体会到语言表达的重要性啊一开始我是怎
2012-04-18 20:49:47 403
原创 poj 1730 Perfect Pth Powers
题目大概意思 给你一个x 令 x=b^p 求最大的p例如 81=9^2=3^4则p的值为 4一看蒙啦,这怎么求啊,数据范围在2^32次方之内,纠结,这种题一定会有算法,再看列出几个例子来例如: x p 9=3*3 2 36=2*2*3*3
2012-04-18 17:55:16 463
原创 TLE总结
一般是算法问题 大数据量的输入,用cin也会超时 还有就是程序没有结束,输入输出改成scanf 和 printf,有时可以解决程序没有结束 不同的oj有不同的返回结果题目是关于字符串的输入,输入方法不对,有时也会超时,对于字符串 如果数据量不是特别大 我感觉用cin会好点TLE: 1 寻找更优化的算法 2 优化代码:去除代码当中重复性计算部分 , 使用内存记录需要重复
2012-04-17 18:51:20 1180 1
原创 poj 1528 Perfection
打表吧,不是很难:1 一个数n的正因数之和等于n则输出PERFECT2 大于n 输出ABUNDANT3小于n输出 DEFICIENT注 因数不包括它本身算法 跟求素数的算法是一样一样儿的,只是这个还得算1 注意数字的输出要求占5个空格代码#include #include #include using namespace std;#define ma
2012-04-15 20:58:55 500
原创 hdu 1789 Doing Homework again (贪心)
题目大概意思是:一共有n个工作,每个作业需要一天完成,在截止时间d[i]内完成否则扣分求最少扣的分数解题思路:首先按照截止时间排序,如果截止时间相同,则按照扣分的大小从大到小排序如果某天只有一个作业需要完成则直接赋值,如果某天是多个作业的截止时间,则从第一天到这天开始遍历,找出从第一天到这一天的最小记录,与这一天的其他作业相比较,如果大于最小记录,则赋值嘴太笨了~~~~代码
2012-04-15 20:09:32 421
原创 hdu 1050 Moving Tables (贪心)
注意 1 房间是两排,房间号:1 3 5 7 9 11 13 15 17 19 21房间号:2 4 6 8 10 12 14 16 18 20 22走廊号:1 2 3 4 5 6 7 8 9 10 11题目中描述的是房间号,要把它变成走廊号例如从(9 10)所对应的i 和 j 均是52 走廊i 到 j j是结尾3 输入的数据不一定都是第一个小于第二个有可能
2012-04-15 20:07:37 411
原创 POJ 1556 The Doors
注意两点之间线段最短,从 A (0,5) 到B(10,5)两点之间的最短距离一定是连接各个墙上的某些点组成的路径之和1 注意 如果连接门上的两点要判断这两点之间是否有墙的存在,如果存在墙就不能连接,也就是没有路径,否则两点之间有路径,并计算保存两点之间的距离2 这些点组成一个图,以后就可以用迪杰斯特拉求最短路径了代码:#include #include #include
2012-04-10 18:25:56 386
原创 PC/UVa 110104/706 LC-Display
模拟题:观察将这些“-”和“|”都写到数组里,令s=1注意1当数字为“1”的时候要讲“|”写到最后一个也就是第s+2个,2 每个数字之间隔一个空格3 每个整数之后有一个空行#include #include #include using namespace std;int s;char str[15];int n[15];in
2012-04-06 13:26:29 695
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人