摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1867题意(重要):给两个字符串,要求串1后缀+本身和串2前缀+本身能有重叠的就省略输出,或者串2后缀和串1前缀;如果两种情况得到的字符串长度相等,就输出字典序小的一个;注意就是asdf 和sdfg,或者sdfg和asdf都会得到asdfg;做这道题在同学已经告诉我题意的情况下我还做错了N多次。。。才发现全局变量原来也是有局限性。。。。用在该用的地方。。。AC代码(好不容易啊。。):#include#include#include#includeusing namespace std;const i 阅读全文
posted @ 2013-08-19 22:33 拼搏今朝 努力奋进 阅读(193) 评论(0) 推荐(0)
摘要: 方法1:用KMP不是完全匹配也没事,把第一个当成模式串,第二个当成主串,比到最后就可以得到最后的状态的j,也就是最大匹配数。AC代码:#include#include#include#includeusing namespace std;#define maxn 50010char s1[maxn],s2[maxn];int next[maxn],len1,len2;void getnext(){ int i=0,j=-1; next[0]=-1; while(i#include#include#includeusing namespace std;#define maxn ... 阅读全文
posted @ 2013-08-18 16:39 拼搏今朝 努力奋进 阅读(174) 评论(0) 推荐(0)
摘要: KMP字符串模式匹配详解来自CSDN A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){/* 若串 S 中从第pos(S 的下标0≤pos S[0] != S[1],S[1] != S[2],所以S[1] != T[0],S[2] != T[0]. 还是从理论上间接比较了。有人疑问又来了,你分析的是不是特.. 阅读全文
posted @ 2013-08-18 14:17 拼搏今朝 努力奋进 阅读(283) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3461和杭电一道题一样。。。。O__O"…AC代码:#include#include#include#includeusing namespace std;const int maxn = 1000000+10;char s1[maxn],s2[maxn];int len1,len2,next[maxn];void getnext(){ int i=0,j=-1; next[0]=-1; while(i<len2) { if(j==-1||s2[i]==s2[j]) { ... 阅读全文
posted @ 2013-08-17 17:19 拼搏今朝 努力奋进 阅读(141) 评论(0) 推荐(0)
摘要: 做了几道KMP的简单题,有些需要记下来的关键点,以供以后查看。先是KMP的模板:const int maxn = 1000000+10;char s1[maxn],s2[maxn];int len1,len2,next[maxn];void getnext(){ int i=0,j=-1; next[0]=-1; while(i<len2) { if(j==-1||s2[i]==s2[j]) { i++,j++; next[i]=j; } else j=next[j]; ... 阅读全文
posted @ 2013-08-17 17:16 拼搏今朝 努力奋进 阅读(226) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1686还是套模板。。。#include#include#include#includeusing namespace std;const int maxn = 1000000+10;char s1[maxn],s2[maxn];int len1,len2,next[maxn];void getnext(){ int i=0,j=-1; next[0]=-1; while(i<len2) { if(j==-1||s2[i]==s2[j]) { ... 阅读全文
posted @ 2013-08-17 16:44 拼搏今朝 努力奋进 阅读(119) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1711还是套模板,但要注意在函数kmp中while(i#include#include#includeusing namespace std;#define maxn 1000000+5int s1[maxn],s2[maxn];int next[maxn];int len1,len2;void getnext(){ int i=0,j=-1; next[0]=-1; while(i=len2)return i-len2+1; return 0;}int main(){// #i... 阅读全文
posted @ 2013-08-17 16:23 拼搏今朝 努力奋进 阅读(254) 评论(0) 推荐(0)
摘要: http://codeforces.com/contest/337/problem/B题意:给你4个数,a,b,c,d,这四个数分别是两个矩形的长宽之比a:b和c:d,让c:d的矩形尽可能充满a:b的矩形而使得空隙最小,输出空隙与a:b矩形最简比。思路:如果要使得最大,肯定剩下的空白是矩形,画图就会发现实际上空白:a:b矩形之比可以由c:d矩形和a:b矩形得到,而两个矩形之比实际上就是其中一个边之比,所以,转化成数学问题就是:给你四个数,如果b/a>d/c,就通分分母,如果b/a#include#include#includeusing namespace std;int gcd(int 阅读全文
posted @ 2013-08-17 02:12 拼搏今朝 努力奋进 阅读(236) 评论(0) 推荐(0)
摘要: http://codeforces.com/contest/337/problem/A做Codeforces的题,目前我觉得简单题最大的困难是读懂题意。。。。题意:给你n个数,让你从中挑选出m个数来,保证其中最大的数和最小的数之差为最小,输出这个数。思路:就是把所给的数排序,然后从第一个开始,记录第i+m-1个与第i个的最小差,到i+m-1==n,输出。AC代码:#include#include#include#includeusing namespace std;int main(){ int n,m; int a[60]; int minn=10000; scanf... 阅读全文
posted @ 2013-08-17 01:54 拼搏今朝 努力奋进 阅读(135) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2141本题关键在于处理上。第一个处理是把原本A+B+C=x,变成D+C=x,就是用两个for循环把AB相加得到数组d[maxn*maxn];第二个处理是把两个数组d[maxn*maxn],c[maxn]排序;第三个处理是要么用二分查找,要么看看第二份代码用巧妙的查找来节省时间;1.AC代码(用二分查找):#include#include#include#include#includeusing namespace std;const int maxn=500+10;int a[maxn],b[maxn],c[ 阅读全文
posted @ 2013-08-16 20:33 拼搏今朝 努力奋进 阅读(126) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2802本题我刚一看的时候就确定是找规律的题,就兴冲冲地开始找了,但由于之前做的此类题比较少,没有经验,愣是没找着?!然后就以为都要打出来,10的9次方啊!!!!我当时也真敢想,就开始了不可能完成的任务。。。。。。就注定了我悲催的命运。。。。。AC代码:#include#includeint main(){// freopen("out.txt","w",stdout);//打表打在外面 int a[10000]; int n; a[1]=1,a[2]=7; for(in 阅读全文
posted @ 2013-08-16 15:48 拼搏今朝 努力奋进 阅读(174) 评论(0) 推荐(0)
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3432用异或做,泪奔ing......还有就是gets()的用法,gets()能吸收空格,到回车停止,而scanf("%s",a);是到空格就停止。AC代码:#include#includeint main(){ int n; char a[10],b[10]; while(scanf("%d",&n)!=EOF) { int x=getchar(); memset(a,0,sizeof(a)); for(... 阅读全文
posted @ 2013-08-16 14:18 拼搏今朝 努力奋进 阅读(137) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2203技巧:能前后滚动,实际上用本串连上,例子:abca,连上就是abcaabca,所有情况abca,bcaa,caab,aabc,都有了。当然本题挺简单用一般方法也可以,但是记得连上时不能用库函数strcat(a1,a2);因为不能strcat(s1,s1);但如果你要再开一个数组当然也可以。。。。AC代码(KMP算法):#include#include#include#includeusing namespace std;const int maxn=100010;char s1[maxn*2],s2[m 阅读全文
posted @ 2013-08-14 20:07 拼搏今朝 努力奋进 阅读(130) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2087题意:给一个主串,一个模板串,问最多有多少个。用KMP算法,当然也能用一般方法,还能用库函数,这里给出KMP算法代码,其中函数可以当做模板,苦逼的我第一次学KMP的时候,看的解题报告竟然是错的!!!!白耗了一个下午。。。。但童鞋们请相信,我的一定是AC的!!!!!错代码害死人啊。。。。。KMP算法AC代码:#include#include#include#includeusing namespace std;char s1[1010],s2[1010];int next[1010],l1,l2;void 阅读全文
posted @ 2013-08-14 19:30 拼搏今朝 努力奋进 阅读(150) 评论(0) 推荐(0)
摘要: 摘自百度百科:http://baike.baidu.com/view/1570652.htm#2strcpy原型:extern char *strcpy(char *dest,char *src);用法:#include 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest结尾处字符(NULL)的指针。举例:// strcpy.c#include #include main(){ char *s="Golden Global View"; char d 阅读全文
posted @ 2013-08-14 15:32 拼搏今朝 努力奋进 阅读(193) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2593题意分析:本题是要求两个子序列的和最大,所以设数组l[100010],l[i]表示从左到右0到i的子序列的最大和,然后从右向左找到i+1到n-1中最大的和,然后相加l[i],遍历一般就能的到最大值。而两步中先从左到右,后又从右到左,用的都是上一篇最大子序列中的简单法子,没用动态规划。AC代码:#include#include#include#include#includeusing namespace std;int l[100010];int a[100010];int main(){ int n; while(scan... 阅读全文
posted @ 2013-08-13 11:23 拼搏今朝 努力奋进 阅读(184) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3041本题我看了很长时间,但直到看了别人的解题思路才知道是二分图最优匹配o(╯□╰)o........((((((转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1299322465解题思路:把方阵看做一个特殊的二分图(以行列分别作为两个顶点集V1、V2,其中| V1|=| V2|)然后把每行x或者每列y看成一个点,而障碍物(x,y)可以看做连接x和y的边。按照这种思路构图后。问题就转化成为选择最少的一些点(x或y),使得从这些点与所有的边相邻,其实这就是最小点覆盖问题。再利用二分图最 阅读全文
posted @ 2013-08-12 19:57 拼搏今朝 努力奋进 阅读(162) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3096题意:就是给一个字符串。例如ZGBG,先是不隔的ZG,GB,BG,没有相同的,然后是隔一个ZB,GG,没有相同的,然后是隔两个ZG,没有相同的。所以是surprising.如果有相同的,就NOT surprising.关键:其实就是两个for循环可以得到所有的对象,再两个for循环比较所有的对象,可得。是个水题但刚开始看半天题意没理解,o(╯□╰)o......#include#include#include#include#includeusing namespace std;char a[100];int main(){ i... 阅读全文
posted @ 2013-08-12 17:26 拼搏今朝 努力奋进 阅读(140) 评论(0) 推荐(0)
摘要: 关键在理解题意。题目给你一个4*4的字符矩阵,让你找相邻的2*2个字符如果有最少3个相同就输出YES,否则输出NO。例子拿第一个样例来说吧,左上角的四个正好符合,因为有三个相同的,所以YES。AC代码:#include#include#include#include#includeusing namespace std;char a[10][10];int main(){ int flag=0; for(int i=0;i<4;i++) scanf("%s",&a[i]);// for(int i=0;i<4;i++)// ... 阅读全文
posted @ 2013-08-11 15:12 拼搏今朝 努力奋进 阅读(155) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3304题意:实际上就是问有没有一条直线能与所有给定的线段有交点。思路:用给定的线段的端点枚举所有可能的直线(要判断两条线段端点是不是重合),然后判断这个直线是不是与所有的线段有交点判断直线与线段是否相交的方法:(就用上两篇博客中的判断一个点在一条直线的左边还是右边。)两个向量以点b为公共点,如果向量bg在向量ba的逆时针方向(左边),那么(g-b)*(a-b)0;所以如果直线与线段相交,那么一定有线段两端在直线左右,所以一个0相乘必定小于0,问题解决。AC代码:#include#include#include#include#include 阅读全文
posted @ 2013-08-08 11:48 拼搏今朝 努力奋进 阅读(193) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2398题意:和POJ2318基本输入一样,但有一些改变。1.输入的线没按着从小到大的顺序,所以要先排序。2.输出要的是有1~m个点之间有多少个区间。例:有5条线,分成区域0,区域1,区域2,区域3,区域4,区域5.分别有2,1,3,5,4,0个点,所以输出就是1:1 2:1 3:1 4:1 5:1 ,再有就是看网上说用int会爆,所以改了一下范围。AC代码:#include#include#include#include#includeusing namespace std;struct point{ __int64 x,y;};po... 阅读全文
posted @ 2013-08-07 18:42 拼搏今朝 努力奋进 阅读(177) 评论(0) 推荐(0)
摘要: http://acm.pku.edu.cn/JudgeOnline/problem?id=2318题意:给你一块面积,给你n条线把这个面积分成n+1块,然后给m个点最后输出从第0块到第n块各有几个点;关键:知道计算几何中一个基本定理,就是向量叉乘(向量叉积),给你一个点g(x,y)一条线(两个端点a(x,y),b(x,y)),判断点是在线的左边还是右边。向量(g-b)*向量(a-b)0就在右面。(判断的依据就是两个向量(g-b)*(a-b)0的话,向量(g-b)就在向量(a-b)的顺时针方向,都是以第二个向量为依据)AC代码:#include#include#include#include#i 阅读全文
posted @ 2013-08-07 15:44 拼搏今朝 努力奋进 阅读(217) 评论(0) 推荐(0)
摘要: http://codeforces.com/problemset/problem/90/A题意:登游览车,每过一辆要一分钟,有三种颜色的车,红,绿,蓝,给三个数,按次序他们是只上对应的车,比如:6 6 4,只上红车的是有6个人,绿车的6个,蓝车的4个,一个车只能做2人,上山要用30分钟,求最少要用多少时间。关键:就是要求出最后一组(每三辆车为一组)是哪一辆车就行了。关键在于考虑最大值相等的情况,比如6,6,4;#include#include#include#includeusing namespace std;int maxn(int a,int b,int c){ if(a>b)b= 阅读全文
posted @ 2013-08-06 17:06 拼搏今朝 努力奋进 阅读(182) 评论(0) 推荐(0)
摘要: http://codeforces.com/problemset/problem/21/B题意:给你两个点集,由两个方程所决定:A1x + B1y + C1 = 0;A2x + B2y + C2 = 0.让你判断交点个数。关键是不能被惯性思维所迷惑,给出两个方程,就想当然的以为是两条直线判断相交平行重叠;要注意当A1=B1=C1=0时,x,y是任意的,所以包含所有的点,当A1=B1=0,C1!=0时,为空集,再把两个方程当成咱们所熟悉的两条直线就行了。AC代码:#include#include#includeusing namespace std;int main(){ int a,b... 阅读全文
posted @ 2013-08-06 16:57 拼搏今朝 努力奋进 阅读(147) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2773题意:给两个数m,k,问与m互质的第k个数是多少?关键:如果a,b,两个数互质,记为(a,b),那么(b*k+a,b),k为非负整数。由此能推出如果1到m之间有j个与m互质的数,那么m,2*m之间也有j个互质的数,依次类推.例:假设m为10,1到10之间有1,3,7,9四个数与10互质,那么在10到20之间也有4个数与10互质,并且能知道这四个数是10*1+1,10*1+3,10*1+7,10*1+9,依次类推。所以有AC代码:#include#include#includeusing namespace std;const int 阅读全文
posted @ 2013-08-06 16:42 拼搏今朝 努力奋进 阅读(233) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1269题意:输入两组点,一组两个,判断是不是平行,相交,重合;AC代码(有点啰嗦但挺好理解):#include#include#include#includeusing namespace std;int main(){ int n; float x1,x2,x3,x4,y1,y2,y3,y4; float k1,k2,b1,b2,c1,c2; float x,y; int flag1,flag2; scanf("%d",&n); printf("INTERSECTING LINES OUTPUT\.. 阅读全文
posted @ 2013-08-06 14:51 拼搏今朝 努力奋进 阅读(191) 评论(0) 推荐(0)
摘要: 浙大http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2229北大http://poj.org/problem?id=1922题意:就是在4.5千米的距离内,小王(随意起的)在最短时间内到达,并且只能在别人的后面跟着,就是以别人的速度,并且在0秒以后;所以关键就是找到最快的并且加上出发时间最短的就行了,理解题意发现本质很重要啊。。。。。AC代码(如果是浙大请用C++交):#include#define INF 1e9int main(){ int n; int a,b; while(scanf("%d" 阅读全文
posted @ 2013-08-06 14:41 拼搏今朝 努力奋进 阅读(188) 评论(0) 推荐(0)
摘要: 写本篇的目的是防止自己再忘了快排的原理和代码的实现,好长时间都没编,竟然不会了,O__O"…,并且还有在C++中的快排的库函数的应用,以供以后参考。看了网上大牛的解释,受益匪浅,快排一般说是分治法,实际上在分治以前还有一个步骤,就是初步排序。以从大到小为例,我学习的是在给定的一组数中,以第一个为基准,找比基准大的数,依次放在基准数的后面,直到找不到比基准数大的数为止,并且记下最后一个比基准大的数的下标,交换基准与最后一个比基准大的数的位置,从而得到在基准以前的都比基准大,以后的都比基准小,这样初步排序就完成了。接下来就是分治,就是重复递归调用本函数排基准以前的,和基准以后的,结束的条 阅读全文
posted @ 2013-08-01 17:21 拼搏今朝 努力奋进 阅读(871) 评论(0) 推荐(0)
摘要: 本题题意先是没搞清楚,后来问了一下才知道。是给你一组字符串让你找有多少字符串对。例如:aaa中(简称a1,a2,a3)a1是一个字符串,能和a2组成一对,a3组成一对,能和a2a3组成一对,a2和a3,a1a2和a3,一共5对。而解决思路是利用两个数组,一个正向记有多少回文串数,一个反向记有多少回文串数,最后一步一步走,例如:abacaba,一步一步走表示为[a][bacaba];前面的回文串数乘以后面的回文串数;然后[ab][acaba],最后相加起来就是最终对数。代码:#include#include#includeusing namespace std;const int maxn=25 阅读全文
posted @ 2013-07-31 19:30 拼搏今朝 努力奋进 阅读(143) 评论(0) 推荐(0)
摘要: 杭电链接:http://acm.hdu.edu.cn/showproblem.php?pid=1081浙大链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1074题意就是给你一个矩阵,找出一个子矩阵,这个子矩阵中所有的数的和是所有可能得到的子矩阵中的最大值,输出这个值。思路就是和最大连续子序列一样,只不过用行压缩,把几行加和看成一行,变成最大子序列。具体方法是用一个二维数组a[i][j],表示这是第j列前i行的和得到所有数据和,然后开始遍历,用3个for循环,一行一行的找(这里的一行表示的是前几行的和),然后一列一 阅读全文
posted @ 2013-07-28 16:37 拼搏今朝 努力奋进 阅读(151) 评论(0) 推荐(0)
摘要: 杭电:http://acm.hdu.edu.cn/showproblem.php?pid=1051浙大:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1025题意梗概:给n个长l重w的木棒,要用机器加工,只不过在安木棒的时候第一个要用一秒,之后的只有在长度不长于之前的并且重量不重于之前的木棒才不消耗时间,否则要再花一秒,求加工完这些木棒用的最短时间。例子:给5个木棒,长重分别是:(4,9), (5,2), (2,1), (3,5), (1,4),所以有用时最少是2秒:[(4,9), (3,5), (1,4)],[(5, 阅读全文
posted @ 2013-07-28 14:09 拼搏今朝 努力奋进 阅读(292) 评论(0) 推荐(0)
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022题意梗概:火车进桥出桥问题,最多有9辆火车进出,遵循先进后出的原则,就是一个栈的问题,输入两排数一个是进站顺序,一个是出站顺序,如果能实现,就输出Yes. ,并且输出进出站的顺序,否则输出No. ,最后输出FINISH本题的关键是一定有一段进站出站倒序,也就是不一定等所有的车出来就让前面的车出去。现在给出AC代码:#include#includeint main(){ int a[20],c[10]; char s1[10],s2[10]; int n; while(sca... 阅读全文
posted @ 2013-07-28 11:59 拼搏今朝 努力奋进 阅读(229) 评论(0) 推荐(0)
摘要: 线段树是用来成段更新的,在众多的数据中更新与查找,一般用线段树。使用线段树,一般分几个步骤,1.建树,2.更新,3.查找。而一般较小的数据(hdu-1166:5万左右)和较大数据(hdu-1754:20万)不同在于有一个技巧的使用;就是在第一步建树上,一般我习惯于用一个数组来储存数据,然后建树,但对于本题较大数据来说,就超时了(时间是3s,优化之前超时,优化了以后是1s,读一个数据就要两秒多,无语。。。。),所以直接在建树的时候录入数据,是需要注意的地方。输入:本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个正整数 N 和 M ( 0#includeusing namespac 阅读全文
posted @ 2013-07-12 18:41 拼搏今朝 努力奋进 阅读(333) 评论(0) 推荐(2)
摘要: 上面谈到用DP做最大连续子序列,后来又看到另一种方法:网上说是一个专家提出,确实挺简单的,具体证明就不给出了,大家有兴趣的可以网上找找。如果实在不理解就先敲几遍记住吧。。。。。题意:也是给出一列数,求其中最大的连续序列和,和首尾排位数;输入:第一行是测试例子数,然后跟N行例子。输出:两行,第一行是Case %d: 第二行依次是 最大和,首尾排位数,末尾排位数。例子:25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5Case 1:14 1 4Case 2:7 1 6现给出AC代码:#includeint main(){ int T,t,n,time,sum,maxs,i,a;... 阅读全文
posted @ 2013-07-11 15:59 拼搏今朝 努力奋进 阅读(249) 评论(0) 推荐(0)
摘要: prim算法思想:(我的理解)就是从已给的边中任意选一个点,然后找遍从这个点到另一个点的最小权值(就是最短的边),找到后就标记,然后继续从标记的点找最小权值,最终连通所有的点。用hoj上的1233题来具体说明:http://acm.hdu.edu.cn/showproblem.php?pid=1233描述:某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入:测试输入包含若干测试用例。每个测试用例的第1行给 阅读全文
posted @ 2013-07-11 15:32 拼搏今朝 努力奋进 阅读(276) 评论(0) 推荐(0)
摘要: 老师推荐的DP题,但参考网上的其他的前辈们的才做出来,汗颜啊。。。最大连续子序列问题描述:给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ...,Nj },其中 1 =a[i]){sum[i]=sum[i-1]+a[i];}else {sum[i]=a[i]}//类似于数学函数,用第一个例子画一个图就明白了。。,此处是关键。。。现附上代码:#includeint main(){ int a[10010],sum[10010],maxs; int n,m,i,s,e; while(scanf("%d",&n)! 阅读全文
posted @ 2013-04-25 22:20 拼搏今朝 努力奋进 阅读(222) 评论(0) 推荐(0)
摘要: 前几天听了老师的讲座,自己又琢磨了一下,再看了看网上的代码,终于踏出了DP的第一步!!!(足以说明智商有待提高。。。。。)杭电1176免费馅饼题意描述都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的馅饼 阅读全文
posted @ 2013-04-25 19:58 拼搏今朝 努力奋进 阅读(232) 评论(0) 推荐(0)
摘要: 前几天听了学长的讲座,通过这个随笔来谈一谈自己的体会。就hdoj的1010题来说吧;(不是我不想翻译的好一点,只是英语太坑爹啊。。。)题意大概就是从开始到结束'X': a block of wall, which the doggie cannot enter;//是墙'S': the start point of the doggie;//是开始'D': the Door; or//是结束'.': an empty block.//是可以走的路在给定的时间时到达终点,也就是说走的路程与给定的时间相等;先输入矩阵大小,再输入给定时 阅读全文
posted @ 2013-04-15 22:58 拼搏今朝 努力奋进 阅读(162) 评论(0) 推荐(0)