首页 > 其他分享 >P1849 乌龟棋

P1849 乌龟棋

时间:2023-05-25 12:33:22浏览次数:41  
标签:p2 p1 41 P1849 乌龟 buf

#include <bits/stdc++.h>
using namespace std;
int n, m, a[351], r[5], dp[41][41][41][41];
#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
char buf[1 << 21], *p1 = buf, *p2 = buf;
inline int read()
{
    char c = getchar();
    int x = 0;
    bool f = 0;
    for (; !isdigit(c); c = getchar())
        f ^= !(c ^ 45);
    for (; isdigit(c); c = getchar())
        x = (x << 1) + (x << 3) + (c ^ 48);
    if (f)
        x = -x;
    return x;
}
int main()
{
    n = read();
    m = read();
    for (int i = 1; i <= n; i++)
    {
        a[i] = read();
    }
    for (int i = 1; i <= m; i++)
    {
        int b;
        b = read();
        r[b]++;
    }
    dp[0][0][0][0] = a[1];
    for (register int r1 = 0; r1 <= r[1]; r1++)
        for (register int r2 = 0; r2 <= r[2]; r2++)
            for (register int r3 = 0; r3 <= r[3]; r3++)
                for (register int r4 = 0; r4 <= r[4]; r4++)
                {
                    int j = 1 + r1 * 1 + r2 * 2 + r3 * 3 + r4 * 4;
                    int mmax = 0;
                    if (r1 != 0)
                        mmax = max(mmax, dp[r1 - 1][r2][r3][r4] + a[j]);
                    if (r2 != 0)
                        mmax = max(mmax, dp[r1][r2 - 1][r3][r4] + a[j]);
                    if (r3 != 0)
                        mmax = max(mmax, dp[r1][r2][r3 - 1][r4] + a[j]);
                    if (r4 != 0)
                        mmax = max(mmax, dp[r1][r2][r3][r4 - 1] + a[j]);
                    dp[r1][r2][r3][r4] = max(dp[r1][r2][r3][r4], mmax);
                }
    cout << dp[r[1]][r[2]][r[3]][r[4]];
    return 0;
}

 

标签:p2,p1,41,P1849,乌龟,buf
From: https://www.cnblogs.com/lhf123/p/17430808.html

相关文章

  • 使用TortoiseGit(小乌龟)管理gitee和本地代码仓库
    一、安装git二、安装TortoiseGitTortoiseGit(小乌龟)的安装三、创建版本库创建一个文件夹,右键,选择Git在这里创建版本库 点击确定 然后我们就会发现多了一个.git的文件,如果没有的话,把查看-->显示-->隐藏的项目勾选就可以看见了 点击拉取 点击管理远端 ......
  • JavaScript写一个小乌龟推箱子游戏
    推箱子游戏是老游戏了,网上有各种各样的版本,说下推箱子游戏的简单实现,以及我找到的一些参考视频和实例;推箱子游戏的在线DEMO:打开如下是效果图:这个拖箱子游戏做了移动端的适配,我使用了zepto的touch模块,通过手指滑动屏幕就可以控制乌龟走不同的方向;因为推箱......
  • 小乌龟 tortoiseGit 配置
    tortoiseGit 使用ssh-keygen生成的key,只需修改newwork中的ssh即可。......
  • 【NOIP2010】【Vijos1775】乌龟棋
    problemsolutioncodes#include<iostream>usingnamespacestd;intn,m,a[355],b[5],dp[40][40][40][40];intmain(){cin>>n>>m;for(inti=0;i<......
  • 小乌龟的安装及使用(码云)
    一、下载小乌龟安装包:https://download.tortoisegit.org/tgit/2.12.0.0/TortoiseGit-2.12.0.0-64bit.msi中文安装包:https://download.tortoisegit.org/tgit/2.13......
  • TortoiseGit(小乌龟)设置保存账号密码
    在我们使用Tortoisegit时,默认是需要在每次提交代码时输入你的账号和密码的,这样在实际使用时会觉得非常繁琐且费时.于是我们可以简单设置下配置文件,便可保存下账号密码......
  • P1541 乌龟棋
    P1541乌龟棋题意:一共有\(N\)个格子,每个格子上有一个分数,一共有四种卡牌:\(1,2,3,4\),使用一种卡牌之后,乌龟将前进对应的长度。每张卡牌只能使用一次,乌龟的起点为\(......
  • 《【答案】芝诺的乌龟是哪一步被追上的?》 回复
    《【答案】芝诺的乌龟是哪一步被追上的?》     https://tieba.baidu.com/p/8084787932      35楼K歌之王:回复Excalibur!:你的这个问题物空大师......
  • P1541 [NOIP2010 提高组] 乌龟棋
    [NOIP2010提高组]乌龟棋题目背景小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。题目描述乌龟棋的棋盘是一行\(N\)个格子,每个格子上一个分数(非负整数)。棋盘第1格是......
  • Git小乌龟的安装及使用
    https://www.jianshu.com/p/33108325fc871安装git2安装TortoiseGit和语言包3github官网,代码托管4代码开发流程 1切换到master分支 2获取master分支最新代码 3创建子分支 4......