dp --- Codeforces 245H :Queries for Number of Palindromes
来源:互联网 发布:呼叫中心网络拓扑图 编辑:程序博客网 时间:2024/06/11 15:17
Queries for Number of PalindromesProblem's Link: http://codeforces.com/problemset/problem/245/H
View Code
Problem's Link: http://codeforces.com/problemset/problem/245/H
Mean:
给你一个字符串,然后q个询问:从i到j这段字符串中存在多少个回文串。
analyse:
dp[i][j]表示i~j这段的回文串数。
首先判断i~j是否为回文,是则dp[i][j]=1,否则dp[i][j]=0;
那么dp[i][j]=dp[i][j]+dp[i][j-1]+dp[i+1[j]-dp[i+1][j-1],从后往前推;
注意判断dp[i][j]是否是回文也需要从后往前推,否则超时。
Time complexity: O(n*n)
Source code:
![](http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
// Memory Time// 1347K 0MS// by : crazyacking// 2015-03-31-16.17#include<map>#include<queue>#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<string>#include<cstdlib>#include<cstring>#include<climits>#include<iostream>#include<algorithm>#define MAXN 5005#define LL long longusing namespace std;char str[MAXN];int dp[MAXN][MAXN];bool judge(int sta,int en){ for(int i=sta,j=en;i<j;++i,--j) { if(str[i]!=str[j]) return false; } return true;}int main(){ gets(str); int len=strlen(str); memset(dp,0,sizeof dp); for(int i=0;i<len;++i) { if(str[i]==str[i+1]) dp[i][i+1]=1; dp[i][i]=1; } for(int i=len-1;i>=0;--i) { for(int j=i;j<len;++j) { if(dp[i+1][j-1]==1&&str[i]==str[j]) dp[i][j]=1; } } for(int i=len-1;i>=0;--i) { for(int j=i;j<len;++j) { dp[i][j]=dp[i][j]+dp[i][j-1]+dp[i+1][j]-dp[i+1][j-1]; } } int q; scanf("%d",&q); while(q--) { int x,y; scanf("%d %d",&x,&y); printf("%d\n",dp[x-1][y-1]); } return 0;}
0 0
- codeforces 245H Queries for Number of Palindromes 区间DP
- CodeForces 245H Queries for Number of Palindromes (区间DP)
- dp --- Codeforces 245H :Queries for Number of Palindromes
- Codeforces 245H H Queries for Number of Palindromes(DP)
- codeforces 245H H. Queries for Number of Palindromes(区间dp)
- Codeforces 245H Queries for Number of Palindromes
- CodeForces - 245H Queries for Number of Palindromes
- CF 245H. Queries for Number of Palindromes 区间dp
- codeforces Queries for Number of Palindromes 区间dp
- H. Queries for Number of Palindromes
- CF 245H Queries for Number of Palindromes
- CodeForces245H - Queries for Number of Palindromes(区间dp)
- 【CF245H】【Queries for Number of Palindromes】
- CF245H:Queries for Number of Palindromes(dp & 区间回文串数量)
- 1.Minimal Number of Palindromes on a String(dp)
- CodeForces 44H - Phone Number-dp
- Codeforces 245H 回文 DP
- codeforces 245H 区间dp
- STL or Force --- CSU 1553: Good subsequence
- 三分 --- CSU 1548: Design road
- 三分 --- ZOJ 3203 Light Bulb
- 三分 --- POJ 3301 Texas Trip
- 三分套三分 --- HDU 3400 Line belt
- dp --- Codeforces 245H :Queries for Number of Palindromes
- 搜索 --- 数独求解 POJ 2676 Sudoku
- Google Code jam Qualification Round 2015 --- Problem A. Standing Ovation
- dp
- Dancing Link --- 模板题 HUST 1017
- Dancing Link 详解(转载)
- 后缀数组 --- WOj 1564 Problem 1564
- STL --- UVA 123 Searching Quickly
- 2014 WAP校园招聘笔试题