zoukankan      html  css  js  c++  java
  • [NOIP2007]矩阵取数游戏

    [NOIP2007]矩阵取数游戏

    题目描述

    链接

    题解

    简单DP+毒瘤高精

    显然行与行没有关联

    所以只需要每行处理

    考虑DP i,j,k 表示第I次取数,第J行,有K次取的头的最大分数

    直接DP即可

    #include<bits/stdc++.h>
    
    using namespace std;
    
    #define LL __int128
    
    inline int read()
    {
        int f=1,x=0;
        char ch;
        do
        {
            ch=getchar();
            if(ch=='-') f=-1;
        }while(ch<'0'||ch>'9');
        do
        {
            x=(x<<3)+(x<<1)+ch-'0';
            ch=getchar();
        }while(ch>='0'&&ch<='9');
        return f*x;
    } 
    
    inline LL Pow(LL a,LL b)
    {
        LL ans=1,mul=a;
        while(b)
        {
            if(b&1) ans*=mul;
            mul*=mul;
            b>>=1;
        }
        return ans;
    }
    
    int n,m;
    int a[100 + 10][100 + 10];
    LL dp[100 + 10][100 + 10][100 + 10];
    LL ans=0;
    
    inline void print(LL x)
    {
        if(!x) return;
        if(x) print(x/10);
        putchar(x%10+'0');
    }
    
    int main()
    {
        n=read();m=read();
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                a[i][j]=read();
            }
        }
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=n;j++)
            {
                for(int k=0;k<=i;k++)
                {
                    if(k!=0)
                    dp[i][j][k]=max(dp[i-1][j][k-1]+a[j][k]*Pow(2,i),dp[i-1][j][k]+a[j][m-(i-k)+1]*Pow(2,i));
                    else dp[i][j][k]=dp[i-1][j][k]+a[j][m-(i-k)+1]*Pow(2,i);
                }
            }
        }
        for(int j=1;j<=n;j++)
        {
            LL maxi=0;
            for(int k=0;k<=m;k++)
            {
                maxi=max(dp[m][j][k],maxi);
            //    cout<<dp[m][j][k]<<" ";
            }
        //    cout<<endl;
            ans+=maxi;
        }
           if(!ans)
        {
            cout<<0<<endl;       
        }
        else
        {
            print(ans);
        } 
    }
    /*
    2 3
    1 2 3
    3 4 2
    
    */
  • 相关阅读:
    TCP/IP学习-链路层
    Linux下搭建Wordpress环境
    DiskMgr的限制项
    Win10系统Start Menu上的图标莫名消失
    powershell
    第一个页面的文本域中输入的值怎么在第二个页面中显示
    php 文本框里面显示数据库调出来的资料
    php代码
    php表单提交方法汇总
    php将SQL查询结果赋值给变量
  • 原文地址:https://www.cnblogs.com/wlzs1432/p/11227993.html
Copyright © 2011-2022 走看看