2013年4月19日

最长公共上升子序列

摘要: 最长公共上升子序列(LCIS)的O(n^2)算法预备知识:动态规划的基本思想,LCS,LIS。问题:字符串a,字符串b,求a和b的LCIS(最长公共上升子序列)。首先我们可以看到,这个问题具有相当多的重叠子问题。于是我们想到用DP搞。DP的首要任务是什么?定义状态。1定义状态F[i][j]表示以a串的前i个字符b串的前j个字符且以b[j]为结尾构成的LCIS的长度。为什么是这个而不是其他的状态定义?最重要的原因是我只会这个,还有一个原因是我知道这个定义能搞到平方的算法。而我这只会这个的原因是,这个状态定义实在是太好用了。这一点我后面再说。我们来考察一下这个这个状态。思考这个状态能转移到哪些状态 阅读全文

posted @ 2013-04-19 22:29 小花熊 阅读(202) 评论(0) 推荐(0) 编辑

POJ1131 Octal Fractions

摘要: 1 #include<stdio.h> 2 #include<string.h> 3 char s[1000]; 4 int b[4000]; 5 int main() 6 { 7 int i,j,k,n,t,len; 8 while(~scanf("%s",s)){ 9 memset(b,0,sizeof(b)); 10 len=strlen(s);11 for(t=0,i=len-1;i>=2;i--){12 n=s[i]-'0';13 for(k=j=0;j<t||n;... 阅读全文

posted @ 2013-04-19 22:03 小花熊 阅读(256) 评论(0) 推荐(0) 编辑

导航