zoukankan      html  css  js  c++  java
  • wikioi 1068 乌龟棋

    四维dp表示分别用了多少张卡后可以获得的最大分数

     1 #include <cstdio>
     2 #include <cmath>
     3 #include <cstring>
     4 #include <ctime>
     5 #include <iostream>
     6 #include <algorithm>
     7 #include <set>
     8 #include <vector>
     9 #include <sstream>
    10 #include <queue>
    11 #include <typeinfo>
    12 
    13 typedef long long ll;
    14 using namespace std;
    15 int a[400];
    16 int b[5];
    17 int dp[50][50][50][50];
    18 int main()
    19 {
    20     memset(b,0,sizeof(b));
    21     int n,m;
    22     cin>>n>>m;
    23     for(int i=0;i<n;i++)
    24         cin>>a[i];
    25     for(int i=0;i<m;i++)
    26     {
    27         cin>>b[0];
    28         b[b[0]]++;
    29     }
    30     int ans;
    31     dp[0][0][0][0]=a[0];
    32     for(int i=0;i<=b[1];i++)
    33     {
    34         for(int j=0;j<=b[2];j++)
    35         {
    36             for(int k=0;k<=b[3];k++)
    37             {
    38                 for(int m=0;m<=b[4];m++)
    39                 {
    40                     ans=0;
    41                     if(i)ans=max(ans,dp[i-1][j][k][m]);
    42                     if(j)ans=max(ans,dp[i][j-1][k][m]);
    43                     if(k)ans=max(ans,dp[i][j][k-1][m]);
    44                     if(m)ans=max(ans,dp[i][j][k][m-1]);
    45                     dp[i][j][k][m]=ans+a[i+2*j+3*k+4*m];
    46                 }
    47             }
    48         }
    49     }
    50     cout<<dp[b[1]][b[2]][b[3]][b[4]]<<endl;
    51     return 0;
    52 }
  • 相关阅读:
    Redis的常用命令及数据类型
    Redis介绍与安装
    Docker
    Linux Shell——正则表达式
    Linux Shell 基础
    python常见报错
    CMDB
    python学习
    Python 3.x标准模块库目录
    Python笔记——Django路由系统
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4010914.html
Copyright © 2011-2022 走看看