【每日一题】乌龟棋

乌龟棋

https://ac.nowcoder.com/acm/problem/16590

题意:



思路:


#include <cstdio>
#include <algorithm>
using namespace std;
const int M = 45;
const int N = 355;
int dp[M][M][M][M];
int w[N];
int n,m;
int num[5];
int main(){
    scanf("%d%d",&n,&m);
    for(int i = 0;i < n;i++) scanf("%d",w+i);
    for(int i = 0;i < m;i++){
        int x;scanf("%d",&x);
        num[x]++;
    }
    for(int a = 0;a <= num[1];a++){
        for(int b = 0;b <= num[2];b++){
            for(int c = 0;c <= num[3];c++){
                for(int d = 0;d <= num[4];d++){
                    int score = w[a+2*b+3*c+4*d];
                    int &v = dp[a][b][c][d];
                    v = score;
                    if(a) v = max(v,dp[a-1][b][c][d]+score);
                    if(b) v = max(v,dp[a][b-1][c][d]+score);
                    if(c) v = max(v,dp[a][b][c-1][d]+score);
                    if(d) v = max(v,dp[a][b][c][d-1]+score);
                }
            }
        }
    }
    printf("%d\n",dp[num[1]][num[2]][num[3]][num[4]]);
    return 0;
}

每日一题 文章被收录于专栏

每题一题题目

全部评论

相关推荐

02-21 23:34
已编辑
厦门大学 Java
神哥不得了:神哥来啦~首先你的bg的话应该算是很好的了,可以把其他删掉,不需要手搓项目呀,直接找网上的项目看懂就行,第一个项目的话虽然和JAVA没有关系,但是他的星数很多,说明你的编程能力还是很强的,我觉得第一个项目是可以放上去的,但是第二个项目的话建议还是再换一个高质量的项目,感觉如果你再把高频top 50的八股再巩固几遍,完全有机会在没有实习的情况下,从暑期实习的大厂,机会还是很大的,注意别看一些假高频八股就行
点赞 评论 收藏
分享
大叔叔1:你把自己说的话打码,所以你想表达什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务