zoj 2744 DP做法
2011-03-22 01:57
295 查看
这个题还是有点纠结...刚开始的时候超内存....后来把int 改为bool 不超内存了..改超时了... 这个看了半天觉的动态规划做法也没什么好优化的了(其实是我不会),,把那个初始化memset 挪到循环外边..每次手动只初始化已经改动了的数组的值..然后不超时了...改WA了..
纠结..后来发现是dp[i][j]写反了..更YM...本来是在自习室了看了三道题回来觉的一会儿就能A完的..这下到现在才两题..纠结..
看了排行..不晓得人家0ms怎么做到的... - -!!
纠结..后来发现是dp[i][j]写反了..更YM...本来是在自习室了看了三道题回来觉的一会儿就能A完的..这下到现在才两题..纠结..
看了排行..不晓得人家0ms怎么做到的... - -!!
#include <stdio.h> #include <string.h> #define MAX 5002 char str[MAX]; bool dp[MAX][MAX]; int main(void) { //freopen("in","r",stdin); //freopen("out","w",stdout); for(int i=0;i<MAX ;i++) for(int j=0;j<MAX;j++) dp[i][j] = false; while (scanf("%s",str) != EOF ) { for(int i=0;i<MAX;i++) dp[i][i] = true; int len = strlen(str); for (int i=1;i<len;i++) for(int j=i;j>=0;j--) if((dp[j+1][i-1]||i==j+1)&&str[i]==str[j]) dp[j][i]=true; int count =0; for(int i=0;i<len;i++) for(int j=0;j<len;j++) if(dp[i][j]) { count++;dp[i][j]=0;} printf("%d/n",count); } return 0; }
相关文章推荐
- ZOJ 1025 Wooden Sticks【非DP做法】
- zoj 1025 || poj 1065 Wooden Sticks(DP做法)
- Atomic Car Race - POJ 2744 dp
- ZOJ 1733 Common Subsequence【DP】
- zoj 3471 Most Powerful //状态压缩DP
- ZOJ 1074 To the Max【DP】【最大子段和】
- ZOJ 3537 简单凸包+DP
- Food Delivery - ZOJ 3469 dp
- 浙大ZOJ 1003 Crashing Ballon问题解决及其他人的做法
- ZOJ 1743 Concert Hall Scheduling(DP)
- ZOJ 3689 Digging(DP)
- ZOJ_Crossed Matchings DP
- ZOJ 2852 DP
- ZOJ 3527 树形DP(章鱼图DP)
- [概率dp] ZOJ 3822 Domination
- ZOJ-2744-Palindromes
- ZOJ 3537 Cake(凸包判定+区间DP)
- zoj 3160(区间dp 简单)
- Zoj 3469 Food Delivery (区间DP)
- poj2411 Mondriaan's Dream 插头dp做法