2013年8月1日

HDU4642

摘要: 1 #include 2 #include 3 int main() 4 { 5 int i,j,n,m; 6 int t; 7 scanf("%d",&t); 8 while(t--) 9 {10 scanf("%d%d",&n,&m);11 n=n*m;12 j=0;13 for(i=1;i<=n;i++)14 {15 scanf("%d",&m);16 if(m && i==n) j=1;17 ... 阅读全文

posted @ 2013-08-01 22:02 ok_boy 阅读(257) 评论(0) 推荐(0) 编辑

HDU4632

摘要: 1 /* 2 区间dp 3 dp[i][j]表示这个区间组成的子串是回文串的个数*/ 4 #include 5 #include 6 const int maxn=1010; 7 int mod=10007; 8 int dp[maxn][maxn]; 9 void init(int len)10 {11 memset(dp, 0, sizeof(dp));12 for(int i = 0; i < len; ++i)13 {14 dp[i][i] = 1;//处理一个字符的情况15 }16 }17 int main()18 {19 i... 阅读全文

posted @ 2013-08-01 21:41 ok_boy 阅读(286) 评论(0) 推荐(0) 编辑

HDU4639

摘要: 1 /*计算里面有多少个相邻的he,1个he就是1种意思,两个就是,两种,所以这是 2 一个斐波拉期数列,间隔的hehe互不影响所以是互斥事件,直接相乘就可以*/ 3 #include 4 #include 5 const int maxn=10086+10; 6 const int mod=10007; 7 int fb[maxn]; 8 void init() 9 {10 int i;11 fb[0]=fb[1]=1;12 for(i=2;i<maxn;i++)13 {14 fb[i]=(fb[i-1]+fb[i-2])%mod;15 ... 阅读全文

posted @ 2013-08-01 20:45 ok_boy 阅读(271) 评论(0) 推荐(0) 编辑

zoj2432

摘要: 1 /* 2 首先,dp的最开始是定义状态 dp[i][j] 表示A串的前i个,与B串的前j个,并以B[j]为结尾的LCIS 的长度. 3 状态转移方程: 4 if(A[i]==B[j]) dp[i][j]=max(dp[i-1][k])+1; ( 1 11 #include 12 #include 13 using namespace std;14 #define N 55015 struct node16 {17 int x,y;18 }path[N][N];19 int dp[N][N];20 int s[N],t[N];21 22 int main()23 {24 ... 阅读全文

posted @ 2013-08-01 11:05 ok_boy 阅读(408) 评论(0) 推荐(0) 编辑

导航