zoukankan      html  css  js  c++  java
  • F-Monkey Banana Banana

    这道题第一个是数据的输入要注意,然后我最开始做的时候想着要不每排进行排序,然后取最大的,相加,但是是wrong anwser,然后参考了一下其他人的代码,dp会好一点

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int dp[220][220],map[220][220];
    int main()
    {
        int T,n,j,k,i,cas=1;
        cin>>T;
        while(T--)
        {
            cin>>n;
            memset(map,0,sizeof(map));
            memset(dp,0,sizeof(dp));
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=i;j++)
                    cin>>map[i][j];
            }
            k=n-1;
            for(i=n+1;i<2*n;i++,k--)
            {
                for(j=1;j<=k;j++)
                    cin>>map[i][j];
            }
    
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=i;j++)
                {
                    dp[i][j]=map[i][j]+max(dp[i-1][j],dp[i-1][j-1]);
                }
            }
    
            k=n-1;
            for(i=n+1;i<2*n;i++,k--)
            {
                for(j=1;j<=k;j++)
                    dp[i][j]=map[i][j]+max(dp[i-1][j],dp[i-1][j+1]);
            }
            printf("Case %d: %d
    ",cas++,dp[2*n-1][1]);
        }
        return 0;
    }
    

      

  • 相关阅读:
    css
    常见属性
    表单
    html的块
    常见标签(一)
    html5 文本内容
    整数的分解
    快速排序及其应用
    javascript之动画特效
    html标签积累
  • 原文地址:https://www.cnblogs.com/yintoki/p/5768407.html
Copyright © 2011-2022 走看看