游戏 DP
游戏 DP
【题意描述】
小喵喵喜欢玩 RPG 游戏。在这款游戏中,玩家有两个属性,攻击和防御,现在小喵喵的攻击和防御都是 1,接下来小喵喵会依次遇到 n 个事件。事件有两种。
1.小喵喵经过修炼,角色升级了,此时可以选择攻击
+1
或者防御+1
.2.小喵喵遇到了一个敌人,可以选择战斗或者逃跑。如果战斗, 胜利后得到 a[i]金钱。如果逃跑,则无事发生,但是以后也不能再 回来打这个怪物了。
对于一场战斗来说,如果小喵喵的攻击力大于等于
atk[i]
,防御 力大于等于def[i]
,那么他可以无伤打败这只怪物,从而他选择打怪,否则他发现自己会受伤,从而选择逃跑。现在小喵喵想知道,通过巧妙地选择升级时加的属性,他最多能 够从这\(n\)个事件中获得多少金钱。
【输入格式】
第1行一个整数\(n\)。
第 2~n+1 行每行会有一个字符’U’或’M’,分别表示升级和怪物, 如果是怪物,之后有空格隔开的三个整数 a[i],atk[i],def[i]。
【输出格式】
一个整数,表示最多的金钱。
简单\(DP\)
设状态\(f[i][j]\)表示第\(i\)轮,现在攻击力为\(j\),用一个前缀和可以算出当前防御力为\(sum[i]-j\),按题意转移即可。
考试时,觉得初始攻击防御很烦,其实是读漏题了,就把所有怪物都减了1,小喵喵初始为0
#include <cstdio>
#include <algorithm>
#define MAX(A,B) ((A)>(B)?(A):(B))
#define ll long long
using namespace std;
inline int read(){
char ch=getchar();int s=0;
while(ch<'0'||ch>'9') ch=getchar();
while(ch>='0'&&ch<='9') s=s*10+(ch^'0'), ch=getchar();
return s;
}
#define MAXN 2019
int n;
bool hav[MAXN];
int atk[MAXN],def[MAXN],a[MAXN];
int sum[MAXN];
ll f[MAXN][MAXN];
int main(){
n=read();
for(int i=1;i<=n;++i){
char opt=getchar();
while(opt!='U'&&opt!='M') opt=getchar();
sum[i]=sum[i-1];
if(opt=='U'){
++sum[i];
}else if(opt=='M'){
hav[i]=1;
a[i]=read(),atk[i]=read(),def[i]=read();
--atk[i];
--def[i];
}else puts("ERROR");
}
for(register int i=1;i<=n;++i)
for(register int j=0;j<=sum[i];++j){ // a
int k=sum[i]-j;
f[i][j]=f[i-1][j];
if(!hav[i]){
if(j>=1)
f[i][j]=max(f[i-1][j-1], f[i][j]);
f[i][j]=max(f[i-1][j], f[i][j]);
}
if(hav[i]&&j>=atk[i]&&k>=def[i]) f[i][j]+=(ll)a[i];
}
ll ans=0;
for(register int j=0;j<=sum[n];++j) ans=max(ans, f[n][j]);
printf("%lld", ans);
return 0;
}
游戏 DP的更多相关文章
- 1233: 传球游戏 [DP]
1233: 传球游戏 [DP] 时间限制: 1 Sec 内存限制: 128 MB 提交: 4 解决: 3 统计 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做 ...
- [LuoguP1005]矩阵取数游戏 (DP+高精度)
题面 传送门:https://www.luogu.org/problemnew/show/P1005 Solution 我们可以先考虑贪心 我们每一次都选左右两边尽可能小的数,方便大的放在后面 听起来 ...
- BZOJ 3875: [Ahoi2014]骑士游戏 dp+spfa
题目链接: 题目 3875: [Ahoi2014]骑士游戏 Time Limit: 30 Sec Memory Limit: 256 MB 问题描述 [故事背景] 长期的宅男生活中,JYY又挖掘出了一 ...
- FZU2126:消除类游戏(DP)
Problem Description S近期在玩一种游戏. 这样的游戏的规则是一个一个地往一个栈里放有颜色的球,当栈顶连续k个球颜色同样时.这k个球立马同一时候消失. 如今S已经往栈里放了n个球,他 ...
- P1057 传球游戏 dp
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:nn个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个 ...
- CDOJ 1294 天行廖的游戏 dp 容斥
天行廖的游戏 题目连接: http://acm.uestc.edu.cn/#/problem/show/1294 Description 天行健,君子以自强不息.地势坤,廖爷以厚德载物 一日在喵哈哈村 ...
- codevs 1085 数字游戏 dp或者暴搜
1085 数字游戏 2003年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单 ...
- vijos 1464 积木游戏 DP
描述 积木游戏 SERCOI 最近设计了一种积木游戏.每个游戏者有N块编号依次为1 ,2,…,N的长方体积木.对于每块积木,它的三条不同的边分别称为"a边"."b边&qu ...
- 【BZOJ3191】【JLOI2013】卡牌游戏 [DP]
卡牌游戏 Time Limit: 10 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description N个人坐成一圈玩游戏.一开始我 ...
随机推荐
- [SOJ #537]不包含 [CF102129I]Incomparable Pairs(2019-8-6考试)
题目大意:给定一个长度为$n$的字符串$s$,求有多少个无序字符串二元组$(x,y)$满足:$x,y$是$s$的字串,且$x$不是$y$的字串,$y$不是$x$的字串 题解:发现满足$x,y$是$s$ ...
- 通过Visual Studio快速生成Json或XML反序列化类代码
Visual Studio不愧是宇宙第一强的IDE工具,在Json.XML格式漫天飞.反序列化需求遍地走的现在,居然到最近才知道原来微软已经在Visual Studio集成了这么一样的良心功能,自动根 ...
- 全栈项目|小书架|服务器开发-NodeJS 中使用 Sequelize 操作 MySQL数据库
安装 官网:https://sequelize.org/v5/manual/getting-started.html 安装sequelize及数据库连接驱动 npm install --save se ...
- MySQL的ERROR 1205错误分析
一.错误发生及原因猜测 1.错误发生 在删除 t_user 表的一条数据时,Navicat 发生长时间的无响应,然后弹出一个对话框,提示:ERROR 1205: Lock wait timeout e ...
- 深入剖析Linux IO原理和几种零拷贝机制的实现
深入剖析Linux IO原理和几种零拷贝机制的实现 来源 https://zhuanlan.zhihu.com/p/83398714 零壹技术栈 公众号[零壹技术栈] 前言 零拷贝(Zero ...
- datagridview控件 索引-1没有值
很多WINFORM的开发人员在DataGridView的开发当中,都会出现“索引-1没有值”这个烦人的问题,其实较早之前,我已经大概知道问题的所在,也找到了解决方法,不过一直没有时间去深入研究一下,今 ...
- Sbase数据库自动截断日志
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36273.1550/html/sprocs/X3 ...
- 实战FFmpeg--iOS平台使用FFmpeg将视频文件转换为YUV文件
做播放器的开发这里面涉及的东西太多,我只能一步步往前走,慢慢深入.播放器播放视频采用的是渲染yuv文件.首先,要知道yuv文件是怎么转换得来的,其次,要知道怎么把视频文件保存为yuv文件.雷神的文章1 ...
- https和证书小结
https://www.cnblogs.com/andy9468/p/10484598.html https://www.cnblogs.com/andy9468/p/10414371.html ht ...
- SqlServer中-char varchar nvarchar的区别
说说nvarchar和varchar的区别:的区别: varchar: 可变长度,存储ANSI字符,根据数据长度自动变化. nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化 ...