#include<bits/stdc++.h>
using namespace std;
int a[400],b[5];
int dp[50][50][50][50];
int main(){
    int n,m,t; 
    cin >> n >> m;
    for(int i=1;i<=n;i++){
        cin >> a[i];
    }
    for(int i=1;i<=m;i++){
        cin >> t;
        b[t]++;
    }
    for(int i=0;i<=b[1];i++){
        for(int j=0;j<=b[2];j++){
            for(int k=0;k<=b[3];k++){
                for(int l=0;l<=b[4];l++){
                    int dis=1+i*1+j*2+k*3+l*4;
                    int &v=dp[i][j][k][l];
                    v=a[dis];
                    if(i) v=max(v,dp[i-1][j][k][l]+a[dis]);
                    if(j) v=max(v,dp[i][j-1][k][l]+a[dis]);
                    if(k) v=max(v,dp[i][j][k-1][l]+a[dis]);
                    if(l) v=max(v,dp[i][j][k][l-1]+a[dis]);
                }
            }
        }
    }
    cout << dp[b[1]][b[2]][b[3]][b[4]] << '\n';
    return 0;
}

【线性DP】乌龟棋的更多相关文章

  1. P1541 乌龟棋 线性dp

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NN格是终点,游戏要求玩家控制一个乌龟棋子 ...

  2. CH5E01 乌龟棋【线性DP】

    5E01 乌龟棋 0x5E「动态规划」练习 描述 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物.乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数).棋盘第1 格是唯一的起点,第N 格是终点 ...

  3. Luogu P1541 乌龟棋 【线性dp】

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行 N 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第 N 格是终点,游戏要求玩家控制一个乌龟 ...

  4. NOIP2010乌龟棋[DP 多维状态]

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  5. 洛谷P1541 乌龟棋(四维DP)

    To 洛谷.1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游 ...

  6. 【洛谷】P1541 乌龟棋(四维背包dp)

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...

  7. Problem D: 乌龟棋【四维dp】

    Problem D: 乌龟棋 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 24  Solved: 15[Submit][Status][Web Boa ...

  8. tyvj 1402 乌龟棋 dp

    P1402 [NOIP2010]乌龟棋 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2010提高组复赛第二题 描述 小明过生日的时候,爸爸送给他一 ...

  9. dp——洛谷 P1541 乌龟棋 —— by hyl天梦

    题目:(转自 https://www.luogu.com.cn/problem/P1541) 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NN格是 ...

  10. P1541 乌龟棋(DP)

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行NNN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NNN格是终点,游戏要求玩家控制一个乌龟 ...

随机推荐

  1. 执行celery --version报错

    python 3.7.4安装celery后执行celery --version报错 安装命令: pip install celery -i https://pypi.douban.com/simple ...

  2. react中如何正确使用setState(附例子)

    概述 setState中对于某个state多次修改,只执行一次(最后一次),所以可以将修改放在同一次中 import React, {Component} from 'react'; class De ...

  3. (四)REDIS-布隆过滤器及缓存

    (一)布隆过滤器 布隆过滤器(英语,Bloom Filter)是1970年由布隆提出的.它实际是一个很长的二进制数组+多个随机Hash算法映射函数,主要用于判断一个元素是否在集合中. 通常我们会遇到很 ...

  4. 【C++复习】第九章 模板与群体数据(2)

    学习重点:容器类型内部的实现机制,顺便复习前面各章内容.容器类型的具体实现不需要特别关注(目前不需要会裸手写这么一个容器类型) 1.群体/线性群体 群体的概念 群体是指由多个数据元素组成的集合体.群体 ...

  5. STM32F4 HAL库中是如何实现UART IO配置的?

    1.配置串口IO.中断等底层的东西需要在用户文件中重写HAL_UART_MspInit函数2.hal库是在stm32f4xx_hal_msp.c文件中重写的HAL_UART_MspInit函数,分析如 ...

  6. 93、springboot 和springcloud版本对比

    https://start.spring.io/actuator/info 建议转为json

  7. List进行分隔,分批插入数据库

    背景,当数据集合超过一定数据量时,则会插入失败,需要将集合进行分隔,分批插入 /** * 分批插入-公共方法 * @param objects:数据集合 * @param subSize:单次插入的条 ...

  8. iOS 12.3 - iOS 13.X 爱思助手越狱教程

    原文链接 本教程使用工具为爱思助手 Mac 版,Windows 电脑可以安装"黑苹果"系统后,在"黑苹果"系统内安装爱思助手再进行操作. 支持设备:iPhone ...

  9. Telerik——GridView总结(Winform)

    在使用Telerik控件时有很多的方法,属性经常被用到,分享在此总结也便于查看复习. 1.基本属性 GridViewTextBoxColumn col = new GridViewTextBoxCol ...

  10. Win10服务主机本地系统磁盘占用过高解决

    前言:发现电脑卡,磁盘被本地系统占用好多.把尝试过的方法都发一下. 1.尝试用了网上的关闭家庭组: win+R打开运行输入:services.msc  打开Windows服务管理器.找到HomeGro ...