博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017"百度之星"程序设计大赛 - 资格赛-度度熊与邪恶大魔王(dp+后缀最小值)
阅读量:6891 次
发布时间:2019-06-27

本文共 1563 字,大约阅读时间需要 5 分钟。

思路:由于防御和血量的范围很小,所以暴力枚举出对于每种防御造成的每种伤害所需的最小花费,最后只需在伤害大于等于血量的情况下再找到最小花费(这个只需要后缀最小值预处理一下就可以了)

状态:dp[i][j]表示对防御为i的怪兽造成伤害为j的所需最小晶石花费。

状态转移方程:dp[i][j]=min(dp[i][j],dp[i][j-t])(t表示每种技能造成的伤害,t=p-i,t>0)

代码1:

 

#include
using namespace std;#define ll long long#define ls rt<<1,l,m#define rs rt<<1|1,m+1,r#define pb push_back#define mem(a,b) memset((a),(b),sizeof(a))const int INF=0x3f3f3f3f;const int N=2e3+5;//必须开2e3,因为造成的伤害是大于等于血量的(1000+1000)const int M=1e5+5;int dp[11][N];int a[M],b[M],k[N],p[N];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { for(int i=0;i
=0;j--) { dp[i][j]=min(dp[i][j+1],dp[i][j]);//求一下后缀最小值 } } ll ans=0; bool flag=false; for(int i=0;i

 

 

 

 代码2:

上面那个代码是先枚举技能再枚举伤害的,这个代码是先枚举伤害再枚举技能的,相比而言这个要慢一些,因为上面那个枚举技能时就知道伤害的范围(下界即t),相当于下面这个代码剪过枝了。

 

#include
using namespace std;#define ll long long#define ls rt<<1,l,m#define rs rt<<1|1,m+1,r#define pb push_back#define mem(a,b) memset((a),(b),sizeof(a))const int INF=0x3f3f3f3f;const int N=2e3+5;const int M=1e5+5;int dp[11][N];int a[M],b[M],k[N],p[N];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { for(int i=0;i
j)continue; dp[i][j]=min(dp[i][j-t]+k[l],dp[i][j]); } } for(int j=N-2;j>=0;j--) { dp[i][j]=min(dp[i][j+1],dp[i][j]); } } ll ans=0; bool flag=false; for(int i=0;i

 

转载于:https://www.cnblogs.com/widsom/p/7292014.html

你可能感兴趣的文章
给大家共享一个基本算法包
查看>>
Riverbed:SDN向广域网扩展为企业带来哪些价值
查看>>
定义中国网络安全市场战略高度,绿盟科技为“互联网+”保驾护航
查看>>
python 自定义 包 模块 打包 安装
查看>>
ubuntu桌面的标题栏和启动栏消失问题[亲测可用]
查看>>
Cloud technology in today's job market
查看>>
3月31日云栖精选夜读:数据科学咨询:想要转型毫无头绪?看了本文你不慌
查看>>
程序猿日记S01E03
查看>>
如何解决域名解析不生效问题?
查看>>
Android开发者指南(9) —— ProGuard
查看>>
MySQL · 答疑解惑 · 物理备份死锁分析
查看>>
字符串指针修改问题
查看>>
JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
查看>>
跨入流式计算时代,用不着洪荒之力——在阿里云容器服务上一键部署JStorm
查看>>
通过JCONSOLE监控TOMCAT的JVM使用情况
查看>>
jquery editable plugin--点击编辑文字插件
查看>>
[Java] TreeMap、HashMap、LindedHashMap的区别
查看>>
javascript 常用自定义方法
查看>>
MariaDB · 新特性 · 窗口函数
查看>>
thinkphp 3.2分布式数据库读写分离扩展阅读
查看>>