hdu 4745 Two Rabbits

思路:求最长回文子串的长度!
代码如下:

 #include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<cstring>
using namespace std;
int s[],dp[][];
int dfs(int p,int q)
{
if(dp[p][q]!=-) return dp[p][q];
if(p>q) return dp[p][q]=;
dp[p][q]=max(dfs(p+,q),dfs(p,q-));
if(s[p]==s[q]) dp[p][q]=max(dp[p][q],dfs(p+,q-)+);
return dp[p][q];
}
int main()
{
int n;
while(scanf("%d",&n)&&n){
for(int i=;i<=n;i++){
scanf("%d",&s[i]);
s[*n+i]=s[n+i]=s[i];
}
int ans=;
memset(dp,-,sizeof(dp));
for(int i=;i<=n;i++)
ans=max(ans,dfs(i,*n+i-));
printf("%d\n",ans);
}
return ;
}
上一篇:dubbo源码分析6——SPI机制中的AOP


下一篇:Duanxx的C++学习 : 数字转换String