zoukankan      html  css  js  c++  java
  • hdu4745 Two Rabbits(dp求回文串!比赛时愣是想不到!肿么破。。。)

    题目大意:n个石头围成一圈,每个有权值,现在两只兔子从任意两个石头开始,一个顺时针,一个逆时针跳,可以跳任意远,但是不能超过一圈,要两只兔子所在的石头对应的权值任意时刻都相同,问兔子最多跳多少步。

    //#pragma comment(linker, "/STACK:16777216")
    #include<cstdlib>
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #include<set>
    #include<map>
    #include<list>
    #include<queue>
    #include<vector>
    #define tree int o,int l,int r
    #define lson o<<1,l,mid
    #define rson o<<1|1,mid+1,r
    #define lo o<<1
    #define ro o<<1|1
    #define ULL unsigned long long
    #define LL long long
    #define inf 0x7fffffff
    #define eps 1e-7
    #define N 2005
    using namespace std;
    int m,n,T,t,x,y,u;
    int a[N];
    int d[N][N];
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("ex.in","r",stdin);
    #endif
    //    scanf("%d",&T);
    //    while(T--)
        int ncase=0;
        while(scanf("%d%*c",&n)==1&&n)
        {
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&a[i]);
                a[i+n]=a[i];
            }
            for(int i=1;i<=n*2;i++)
            d[i][i]=1;
            for(int i=2;i<=n*2;i++)
            d[i-1][i]=(a[i]==a[i-1]?2:1);
            for(int k=2;k<n;k++)
            {
                for(int i=1,j;i+k<=n*2;i++)
                {
                    j=i+k;
                    if(a[i]==a[j])
                    d[i][j]=2+d[i+1][j-1];
                    else
                    d[i][j]=max(d[i+1][j],d[i][j-1]);
                }
            }
            int ans=d[1][n];
            for(int i=1;i+n-1<=n*2;i++)
            {
                int j=i+n-1;
                for(int k=i;k<j;k++)
                {
                    ans=max(ans,d[i][k]+d[k+1][j]);
                }
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    。。
    前端jQuery选择器
    杂物柜。。。。
    (转载)pycharm相关问题
    http协议基础 2.HTTP的三次握手,四次挥手
    http协议基础 1.TCP/IP五层模型 与OSI七层协议
    yum无法使用解决方法(比较全,以后如果遇到别的问题还会添加)
    3
    2
    1
  • 原文地址:https://www.cnblogs.com/sbaof/p/3329564.html
Copyright © 2011-2022 走看看