City Destruction Kattis - city dp
/**
题目:City Destruction Kattis - city
链接:https://vjudge.net/problem/Kattis-city
题意:有n个怪兽,排成一行。每个怪兽有一个生命值和一个爆炸值。每次可以选择一个怪兽攻击早造成d伤害。
如果生命值<=0;那么怪兽i死亡并且爆炸。i+1,i-1第怪兽都会受到
第i个怪兽的爆炸值伤害。如果第i-1被第i炸死,第i-1怪兽不会继续炸别人。
不会传递。也就是只有攻击者攻击致死的怪兽才会对i-1,i+1造成爆炸值伤害。
求最少攻击多少次才能杀死所有的怪兽。
思路:
定义dp[i][j]表示前i个怪兽,j=0表示i-1比i先死,j=1表示i-1比i后死需要的最少攻击次数。
///本题直接写递推方程我写不出来,因为i和i-1以及未知的i+1都有关联。i+1是未知的。
所以不好表示,本人菜鸡。如果dfs记忆化做法,倒是清晰。 */ #include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include <queue>
#include <iostream>
#include <vector>
using namespace std;
#define ms(x,y) memset(x,y,sizeof x)
typedef long long LL;
const int N = 1e4;
const LL INF = 1e18;
LL dp[N][];///j=0表示i-1比i先死,j=1表示i-1比i晚死。
int h[N], e[N];
int n, d;
LL cal(LL r)
{
if(r<=) return ;
if(r%d==){
return r/d;
}
return r/d+;
}
LL dfs(int i,int j)
{
if(i==n){
return ;
}
LL &res = dp[i][j];
if(res!=-) return res;
res = INF;
LL r = h[i];
if(j==){
r -= e[i-];
res = min(res,dfs(i+,)+cal(r));
if(i<n-){
res = min(res,dfs(i+,)+cal(r-e[i+]));
}
}else
{
res = min(res,dfs(i+,)+cal(r));
if(i<n-){
res = min(res,dfs(i+,)+cal(r-e[i+]));
}
}
return res;
}
int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%d%d",&n,&d);
for(int i = ; i < n; i++){
scanf("%d",&h[i]);
}
for(int i = ; i < n; i++){
scanf("%d",&e[i]);
}
memset(dp, -, sizeof dp);
printf("%lld\n",dfs(,));
}
return ;
}
City Destruction Kattis - city dp的更多相关文章
- HDU 1505 City Game (hdu1506 dp二维加强版)
F - City Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- ZOJ 3042 City Selection II 【序】【离散化】【数学】
题意: 输入数据n,m.n代表工厂的数量,m代表城市的数量. 接下来n+m行为工厂和城市的坐标. 规定如图所示方向刮风,工厂的air会污染风向地区的air. 注意,工厂和城市的坐标表示的是从x到x+1 ...
- HDU 4849-Wow! Such City!(最短路)
Wow! Such City! Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Other ...
- bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通
Description A dip in the milk market has forced the cows to move to the city. The only employment av ...
- [py][mx]django课程页显示city和机构封面图
city和课程机构信息展示到前台去 organization/views.py from django.views.generic.base import View from organization ...
- HDU-4849 Wow! Such City! (单源最短路)
Problem Description Doge, tired of being a popular image on internet, is considering moving to anoth ...
- HDU 5352——MZL's City——————【二分图多重匹配、拆点||网络流||费用流】
MZL's City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- hdu4849 Wow! Such City!(最短路dijkstra)
转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:pid=4849">http://acm.hdu.edu ...
- 2015 Multi-University Training Contest 5 hdu 5352 MZL's City
MZL's City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
随机推荐
- tensorflow c++接口的编译安装与一些问题记录
参考这篇文章安装,依次安装bazel,protocbuf,eigen3,然后下载tensorflow源码,编译c++ api,将编译结果拷贝到搜索路径 最后测试案例时遇到一些问题 (1)fatal e ...
- iOS 程序从开发完到上 AppStore 那点事儿
收录待用,修改转载已取得腾讯云授权 一.账号体系 想要进行iOS开发,除了必备一台装有Mac OS X/Xcode的Mac开发机(iMac or MacBook)之外,还必须要有苹果开发者账号,只有拥 ...
- [转]Git branching and tagging best practices
Git branching and tagging best practices I am currently learning to use Git by reading Pro Git. Righ ...
- DevExpress 编译成功的 dll
DevExpress 编译成功的 dll 附注册方法 其它的有些文件没有,如: DevExpress.EasyTest 这个程序集找不到 希望有的朋友可以分享一下, 安装程序集 通常,将程序集安装到G ...
- 切换样式.toggleClass()
切换样式.toggleClass() 在做某些效果的时候,可能会针对同一节点的某一个样式不断的切换,也就是addClass与removeClass的互斥切换,比如隔行换色效果 jQuery提供一个to ...
- 处理SecureCRT中使用vim出现中文乱码的问题
在工作中经常需要使用到SecureCRT登录到linux环境去做一些文本处理的工作,因此就经常会遇到一些乱码问题,尤其是编辑的内容包含较多中文的情形,下面就是遇到类似问题的解决办法.LANG=POSI ...
- Python-绑定与未绑定方法通俗讲解
像函数一样,Python中的类方法也是一种对象.由于既可以通过实例也可以通过类来访问方法,所以在Python里有两种风格: 未绑定的类方法:没有self 通过类来引用方法返回一个未绑定方法 ...
- 从构建分布式秒杀系统聊聊验证码 给大家推荐8个SpringBoot精选项目
前言 为了拦截大部分请求,秒杀案例前端引入了验证码.淘宝上很多人吐槽,等输入完秒杀活动结束了,对,结束了...... 当然了,验证码的真正作用是,有效拦截刷单操作,让羊毛党空手而归. 验证码 那么到底 ...
- 已知的问题:本文总结了与Telerik UI for ASP.NET Core相关的所有已知问题。
ASP.NET Core Framework 不支持数据表. 有关此限制的更多信息,请参阅dotnet / corefx#1039. 不支持本地化资源. 有关此限制的更多信息,请参阅dotnet / ...
- Mongodb - TTL(time to live)特性
TTL集合支持mongodb对存储的数据进行失效时间设置,经过指定的时间段后.或在指定的时间点过期,集合自动被mongod清除.这一特性有利于对一些只需要保存一定时间的数据信息进行存储,比如机器产生的 ...