牛客网 【每日一题】7月27日题目精讲—乌龟棋

来源:牛客网:

乌龟棋

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

文章目录

    • 乌龟棋
    • 题目描述
    • 题解:
    • 代码:

题目描述

小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。
乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数)。棋盘第1 格是唯一的起点,第N 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200801234435912.png)

乌龟棋中M 张爬行卡片,分成4 种不同的类型(M 张卡片中不一定包含所有4 种类型的卡片见样例),每种类型的卡片上分别标有1、2、3、4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所有的爬行卡片中选择一张之前没有使用过的爬行卡片,控制乌龟棋子前进相应的格子数,每张卡片只能使用一次。游戏中,乌龟棋子自动获得起点格子的分数,并且在后续的爬行中每到达一个格子,就得到该格子相应的分数。玩家最终游戏得分就是乌龟棋子从起点到终点过程中到过的所有格子的分数总和。
很明显,用不同的爬行卡片使用顺序会使得最终游戏的得分不同,小明想要找到一种卡片使用顺序使得最终游戏得分最多。
现在,告诉你棋盘上每个格子的分数和所有的爬行卡片,你能告诉小明,他最多能得到多少分吗?

输入描述:
第1行2个正整数N和M,分别表示棋盘格子数和爬行卡片数。

第2行N个非负整数,a1, a2, ……, aN,其中ai表示棋盘第i个格子上的分数。

第3行M个整数,b1,b2, ……, bM,表示M张爬行卡片上的数字。
输入数据保证到达终点时刚好用光M张爬行卡片,即N-1= 在这里插入图片描述

输出描述:
输出只有1行,1个整数,表示小明最多能得到的分数。
示例1
输入
复制

9 5
6 10 14 2 8 8 18 5 17
1 3 1 2 1

输出
复制

73

说明
小明使用爬行卡片顺序为1,1,3,1,2,得到的分数为6+10+14+8+18+17=73。注意,

由于起点是1,所以自动获得第1格的分数6。
示例2
输入
复制

13 8
4 96 10 64 55 13 94 53 5 24 89 8 30
1 1 1 1 1 2 4 1

输出
复制

455

备注:
在这里插入图片描述

题解:

动态规划
dp[i][j][k][l]表示卡片1用了i张,卡片2用了j张,一次类推,用了这些卡牌的情况下所取得的最高分
那当前所在格子就是i1+j2+k3+l4
得到转移方程:
dp[i][j][k][l]=max(dp[i−1][j][k][l],dp[i][j−1][k][l],dp[i][j][k−1][l],dp[i][j][k][l−1])+a[i×1+j×2+k×3+l×4]
第i×1+j×2+k×3+l×4格子的分数

代码:

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int maxn=50;
int dp[maxn][maxn][maxn][maxn];
int num[10];
int a[1000];
int main()
{int n,m;cin>>n>>m;for(int i=0;i<n;i++)cin>>a[i];for(int i=1;i<=m;i++){int w;cin>>w;num[w]++;//记录每种卡牌的数量 }dp[0][0][0][0]=a[0];//切勿忘记起始格 for(int i=0;i<=num[1];i++){for(int j=0;j<=num[2];j++){for(int k=0;k<=num[3];k++){for(int l=0;l<=num[4];l++){int score=a[i*1+j*2+k*3+l*4];if(i-1>=0)dp[i][j][k][l]=max(dp[i-1][j][k][l]+score,dp[i][j][k][l]);if(j>=1)dp[i][j][k][l]=max(dp[i][j-1][k][l]+score,dp[i][j][k][l]);if(k>=1)dp[i][j][k][l]=max(dp[i][j][k-1][l]+score,dp[i][j][k][l]);if(l>=1)dp[i][j][k][l]=max(dp[i][j][k][l-1]+score,dp[i][j][k][l]);}}}}printf("%d\n",dp[num[1]][num[2]][num[3]][num[4]]);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【费用流】摘取作物(jozj 3447)

正题 jozj 3447 题目大意 给你一个n*m的矩阵&#xff0c;每个位置有一个数&#xff0c;每一行每一列都只能选两个数&#xff0c;问你所选数字之和最大是多少 解题思路 对于该矩阵&#xff0c;我们可以建立一个网络图&#xff08;如下图&#xff09; 对于每一行建立建立一个…

如何在.NET Core控制台程序中使用依赖注入

背景介绍依赖注入(Dependency Injection), 是面向对象编程中的一种设计原则&#xff0c;可以用来减低代码之间的耦合度。在.NET Core MVC中我们可以在Startup.cs文件的ConfigureService方法中使用服务容器IServiceCollection注册接口及其实现类的映射。例如&#xff0c;当我们需…

牛客网 【每日一题】7月24日题目精讲—小A的柱状图

链接&#xff1a; 文章目录题目描述题解&#xff1a;代码&#xff1a;小A的柱状图时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 柱状图是有一些宽度相等的矩形下端对齐以后…

在asp.net core2.1中添加中间件以扩展Swashbuckle.AspNetCore3.0支持简单的文档访问权限控制...

Swashbuckle.AspNetCore3.0 介绍一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由&#xff0c;控制器和模型生成漂亮的 API 文档&#xff0c;包括用于探索和测试操作的 UI。项目主页&#xff1a;https://github.com/domaindrivendev/Swashbuckle.AspNetCore划…

牛客网【每日一题】7月29日题目精讲—Max Power

来源&#xff1a;牛客网&#xff1a; Max Power 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld题目描述 小卤蛋刚把dnf的技能点重新洗了一遍,现在他要重新加点,假设他的技能树一共有…

Swashbuckle.AspNetCore3.0的二次封装与使用

关于 Swashbuckle.AspNetCore3.0一个使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由&#xff0c;控制器和模型生成漂亮的 API 文档&#xff0c;包括用于探索和测试操作的 UI。项目主页&#xff1a;https://github.com/domaindrivendev/Swashbuckle.AspNetCore项…

.NET微服务调查结果

.NET Core就是专门针对模块化的微服务架构而设计, 在2018年国庆时间展开.NET微服务的使用情况&#xff0c;本次调查我们总计收到了来自378个开发者的调查。从落地现状、架构体系、未来趋势等方面对微服务进行了分析。希望能够为传统企业微服务决策、规划和实施提供依据和解决办…

(牛客网)树型dp

树型dp 视频链接 &#xff08;如果想购买网课&#xff0c;可以用我的邀请码&#xff09; 用我的链接购买&#xff0c;我再反你10&#xff0c;一共花54多值 购买链接 不放心可以先加我好友2830872914 总试题链接 文章目录树型dp例题NC15033 小G有一个大树NC511788 没有上司的舞…

Node 源项目定制化、打包并使用全过程讲解

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈工…

.Net Core中的Api版本控制

原文链接&#xff1a;API Versioning in .Net Core作者&#xff1a;Neel Bhatt简介Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制在本篇博客中&#xff0c;我们将说明一下如何在.Net Core Api项目中使用Api版本控制。本篇博客中测试项…

Visual Studio 2017 与 Visual Studio for Mac 支持更新

微软在博客中简单介绍了关于 VS 2017 和 VS for Mac 项目的支持计划&#xff1a;https://blogs.msdn.microsoft.com/visualstudio/2018/10/05/visual-studio-2017-and-visual-studio-for-mac-support-updates/。微软表示&#xff0c;在目前努力开发 Visual Studio 2019 的同时&…

ASP.NET Core中使用表达式树创建URL

当我们在ASP.NET Core中生成一个action的url会这样写&#xff1a;var url_urlHelper.Action("Index", "Home");这样的写法存在的问题在于我们传递了两个字符串类型的参数&#xff0c;而我们又无法避免对action和controller做重命名操作, 例如将index重命名…

在你的andorid设备上运行netcore (Linux Deploy)

最近注意到.net core 的新版本已经开始支持ARM 平台的CPU, 特意去Linux Deploy 中尝试了一下&#xff0c;真的可以运行 Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.9.65-perf armv8l)* Documentation: https://help.ubuntu.com/Ubuntu 16.04 LTS [running via Linux Deploy]La…

持续集成配置之Nuget

Intro本文是基于微软的 VSTS(Visual Studio Team Service) 做实现公众类库的自动打包及发布。之前自己的项目有通过 Github 上的 Travis 和 Appveyor&#xff0c;这次主要是用 VSTS 来做的&#xff0c;对比 appveyor 和 vsts 上的持续集成&#xff0c;vsts 上微软把常用的工具和…

【每日一题】8月7日题目精讲—双栈排序

来源&#xff1a;牛客网 文章目录题目描述题意&#xff1a;题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld题目描述 Tom最近在研究一个有趣的排序问…

手把手教你搭APM之Skywalking搭建指南(支持Java/C#/Node.js)

前言什么是APM?全称:Application Performance Management可以参考这里:现代APM体系&#xff0c;基本都是参考Google的Dapper&#xff08;大规模分布式系统的跟踪系统&#xff09;的体系来做的。通过跟踪请求的处理过程&#xff0c;来对应用系统在前后端处理、服务端调用的性能…

牛客练习赛 64——错排

A.怪盗-1412 111…1⏟⌊n2⌋444…4⏟m111…1⏟⌈n2⌉222…2⏟k\begin{matrix} \underbrace{ 111\dots\ 1} \\ \lfloor \frac{n}{2} \rfloor \end {matrix}\begin{matrix} \underbrace{ 444\dots\ 4} \\ m \end{matrix}\begin{matrix} \underbrace{ 111\dots\ 1} \\ \lceil \fra…

牛客网状压dp

状压dp 视频链接 &#xff08;如果想购买网课&#xff0c;可以用我的邀请码&#xff09; 用我的链接购买&#xff0c;我再反你10&#xff0c;一共花54多值 购买链接 不放心可以先加我好友2830872914 总试题链接 文章目录状压dp预备知识——位运算例题&#xff1a;引入&#x…

【线段树】海报(loj 3264)

正题 loj 3264 题目大意 有一个环&#xff0c;环上n个点&#xff0c;权值为a&#xff0c;有m次修改&#xff0c;每次修改一个aia_iai​&#xff0c;然后让你选取一些数&#xff0c;使环上不存在连续四个以上的数被选取&#xff0c;让你求所选数的最大权值和 解题思路 不难想…

.Net Core功能开关实战

为了快速发布开发完成的功能&#xff0c;企业通常会以比较快的迭代周期持续发布。但是由于某些 原因或场景&#xff0c;需要在发布的时候将某些功能隐藏起来或者小规模的开放&#xff08;例如只有某些特定用户可以使用、或者特定日期开放&#xff09;&#xff0c;通过使用功能开…