首页 > 其他分享 >P1541 [NOIP2010 提高组] 乌龟棋

P1541 [NOIP2010 提高组] 乌龟棋

时间:2024-10-19 10:32:45浏览次数:7  
标签:NOIP2010 int long num P1541 tie 乌龟 include define

dp[a][b][c][d]表示走了a+b2+c3+d*4步的当前的最大值,状态转移方程就出来了。

点击查看代码
#include <iostream>
#include <stack>
#include <cmath>
#include <algorithm>
#include <set>
#include <vector>
#include <climits>
#include <string.h>
#include <map>
#include <queue>
#include <list>
#include <cmath>
#include <iomanip> 
#define int long long 
#define ios ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define lc u<<1
#define rc u<<1|1
#define gcd __gcd
#define double long double
#define endl "\n"
#define INF LLONG_MAX
#define mod  1000000007
#define N 40
const double PI = 3.14159265358979323846;
using namespace std;
int n, m, num[355], g[N],dp[N][N][N][N];
signed main()
{
    ios;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)cin >> num[i];
    for (int j = 1; j <= m; j++)
    {
        int x; cin >> x;
        g[x]++;
    }
    dp[0][0][0][0] = num[1];
    for (int a = 0; a <= g[1]; a++)
    {
        for (int b = 0; b <= g[2]; b++)
        {
            for (int c = 0; c <= g[3]; c++)
            {
                for (int d = 0; d <= g[4]; d++)
                {
                    int r = 1 + a + b * 2 + c * 3 + d * 4;
                    if (a != 0)dp[a][b][c][d] = max(dp[a][b][c][d], dp[a - 1][b][c][d] + num[r]);
                    if (b != 0)dp[a][b][c][d] = max(dp[a][b][c][d], dp[a][b - 1][c][d] + num[r]);
                    if (c != 0)dp[a][b][c][d] = max(dp[a][b][c][d], dp[a][b][c - 1][d] + num[r]);
                    if (d != 0)dp[a][b][c][d] = max(dp[a][b][c][d], dp[a][b][c][d - 1] + num[r]);
                }

            }

        }
    }
    cout << dp[g[1]][g[2]][g[3]][g[4]] << endl;
    return 0;
}

标签:NOIP2010,int,long,num,P1541,tie,乌龟,include,define
From: https://www.cnblogs.com/youyong1/p/18475571

相关文章

  • Tortoise SVN 安装汉化教程(乌龟SVN)
    1.首先下载去官网下载如果下载比较慢的,链接自取https://pan.quark.cn/s/cb6f2eee3f902.安装TortoiseSVN无脑next到完成最后到桌面右键你就发现svn出来了,但是是英文的!!!!像我这种英文不好的人怎么办呢那就只能汉化!!!3.汉化双击打开安装汉化包疯狂next直到安装完成4......
  • P1541
    简单四维dp。#include<bits/stdc++.h>usingnamespacestd;inta[355],b,t[5],dp[45][45][45][45];intmain(){ ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); intn,m,r; cin>>n>>m; for(inti=1;i<=n;i++)cin>>a[i]; dp[0][0]......
  • 洛谷每日一题(P1540 [NOIP2010 提高组] 机器翻译)
    原题目链接:P1540[NOIP2010提高组]机器翻译-洛谷|计算机科学教育新生态(luogu.com.cn)原题目截图:思路分析:读懂题意,直接模拟过程即可。这是一道很简单的题目。思路过程很类似模拟页面置换算法中的先进先出(FIFO)策略。因此我们很容易想到,要用队列来实现。下面是......
  • 第21篇 TortoiseGit(大乌龟)版本管理工具的使用
    一、下载安装1.下载git必须先下载并安装git,再TortoiseGit下载安装git安装参考教程:https://blog.csdn.net/mukes/article/details/1156938332.TortoiseGit下载与安装TortoiseGit,Git客户端,32/64位最新版及对应的语言包下载地址:https://tortoisegit.org/download/进入下载页面,......
  • tortoise小乌龟git管理工具的使用(以若伊为例)
    ■后端代码在本地修改后,必须先提交才能推送;对于多人开发的软件,后端的新增模块或功能因为是新的,和别人的没有冲突,都可以提交,但涉及到全局配置的yml文件,因为本地配置(比如数据库配置)和服务器配置可能不同,因此不能提交,不打勾即可。■提交后,通知其他人拉取最新的代码,否则2个人......
  • 洛谷P1540 [NOIP2010 提高组] 机器翻译答案
    #include<bits/stdc++.h>usingnamespacestd;/*数据结构:队列queue 桶:标记某个单词是否出现在内存中 t[i]=false:不在t[i]=true:在对于读入的每个单词x: 如果不存在单词x 存储(入队) t[x]=true 内存中元素个数(q.size())>M: t[q.front()]=falses; ......
  • 洛谷 P1540 [NOIP2010 提高组] 机器翻译
    题目概括给定N个整数,和一个容量为M的“字典”,从头到尾依次翻译,每次翻译先看自家字典,没有的话再看别人的字典并存到自家字典,如果自家字典满了,当前单词的翻译会代替最早进入的。做题思路定义一个长度为M的字典数组,依次遍历N个数,每次翻译先检索字典数组,没有的话加入字典并......
  • P1540 [NOIP2010 提高组] 机器翻译 题解
    题目概括给定N个整数,和一个容量为M的“字典”,从头到尾依次翻译,每次翻译先看自家字典,没有的话再看别人的字典并存到自家字典,如果自家字典满了,当前单词的翻译会代替最早进入的。做题思路定义一个长度为M的字典数组,依次遍历N个数,每次翻译先检索字典数组,没有的话加入字典并......
  • 探究乌龟对对碰游戏的最优策略
    1.黑箱中有10种不同颜色的乌龟,保证他们个数始终足够且相等。乌龟将由参与者抽出并填入编号为1-9的九宫格中,且优先填入数字小的格子。参与者开局拥有n次抽取的机会。2.参与者开局自己确定一个幸运颜色,抽中幸运颜色即可再抽一次3.当网格中一行或一列出现三只颜色相同的乌龟,这三只......
  • Python turtle 无图 20行代码写乌龟快跑
    上期在一小时内被我用流量券顶到了20后面就没啥亮点了 _____________________________________________________________________________老规矩先放代码(20行代码以下代码段为准):importturtle,random;turtle.tracer(0);bg2=turtle.Screen();bg=turtle.Turtle();dg=tur......