zoukankan      html  css  js  c++  java
  • hdu 4745 动态规划

    思路:特水的一个最长回文子序列动态规划。比赛时硬卡第一题,49WA后终于AC,可惜没时间做这题,结果成绩也就可想而知了。兔子跳一样权值的石头,并且一个正跳,一个反跳,这不就是个回文子序列吗?????!!!!

    #include<set>
    #include<map>
    #include<cmath>
    #include<queue>
    #include<cstdio>
    #include<vector>
    #include<string>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define pb push_back
    #define mp make_pair
    #define Maxn 1010
    #define Maxm 200010
    #define LL __int64
    #define Abs(x) ((x)>0?(x):(-x))
    #define lson(x) (x<<1)
    #define rson(x) (x<<1|1)
    #define inf 100000
    #define lowbit(x) (x&(-x))
    #define clr(x,y) memset(x,y,sizeof(x))
    #define Mod 1000000007
    using namespace std;
    int dp[Maxn][Maxn],num[Maxn];
    int main()
    {
        int n,i,j;
        while(scanf("%d",&n),n){
            clr(dp,0);
            for(i=1;i<=n;i++){
                scanf("%d",num+i);
                dp[i][i]=1;
            }
            for(i=1;i<=n;i++){
                for(j=i-1;j>=1;j--){
                    dp[i][j]=max(dp[i-1][j],dp[i][j+1]);
                    if(num[i]==num[j])
                        dp[i][j]=dp[i-1][j+1]+2;
                }
            }
            int ans=0;
            for(i=1;i<=n;i++)
                ans=max(ans,dp[i][1]+dp[n][i+1]);
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    Object的原型拷贝-create、assign、getPrototypeOf 方法的结合
    配intelliJ IDEA 过程
    浅谈HTTP中Get与Post的区别
    apply、call、bind区别、用法
    引用类型与原始类型的区别
    html5标签集结1
    指针作为参数传递
    指针与指针变量
    函数模板
    内置函数
  • 原文地址:https://www.cnblogs.com/wangfang20/p/3323703.html
Copyright © 2011-2022 走看看