摘要: 第一道树状数组,每个第一道都那么艰难……..#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define MAX 1234567890int res[10010],data[10010];int lowbite(int x){ return x & (x^(x-1));}int GetSum(int i){ int t=0; while(i>0) { t+=res[i]; i-=lowbite(i); } return t;}int A... 阅读全文
posted @ 2012-05-01 22:08 书山有路,学海无涯 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 令res[i][j]表示从i到j是否是回文串。res[i][j]= (str[i]==str[j] && res[i+1][j-1]) ;接下来是如何找最少个数回文串,令inum[i]表示从1到i至少有多少个回文串,再次用DP;inum[i]=min(inum[j]+1),(其中res[j][i]==1,1<=j<i);最后根据inum[i]的值寻找一种可行的方案。O(n^2)的时间复杂度,O(n^2)的空间复杂度,网上还有更好的代码,竟然没有看懂#include<iostream>#include<cstdio>#include<cs 阅读全文
posted @ 2012-05-01 16:16 书山有路,学海无涯 阅读(219) 评论(0) 推荐(0) 编辑