hdu 5115 Dire Wolf
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115
题目分类:区间dp
题意:有n只狼,每只狼有两种属性,一种攻击力一种附加值,我们没杀一只狼,那么我们受到的伤害值为这只狼的攻击值与它旁边的两只狼的附加值的和,求把所有狼都杀光受到的最小的伤害值。
题目分析:
dp[i][j]表示把区间i,j内的所有狼杀光所受到的最小的伤害。
状态转移方程为
dp[i][j]=min{dp[i][k]+dp[k+1][j]-b[k]+b[i+1],
dp[i][k]+dp[k+1][j]-b[k+1]+b[j+1]}(i<=k<j)
先确定长度,然后再确定ij,否则是不对的
代码:
#include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f /**赤裸裸的区间DP dp[i][j]表示把区间i,j内的所有狼杀光所受到的最小的伤害。 状态转移方程为 dp[i][j]=min{dp[i][k]+dp[k+1][j]-b[k]+b[i+1],
dp[i][k]+dp[k+1][j]-b[k+1]+b[j+1]}(i<=k<j)
这里讨论了先杀左边的还是先杀右边的处理的时候要注意a[0],b[0],a[n+1],b[n+1]的初值都是0.*/ int t,n;
int a[];
int b[];
int dp[][]; int main()
{ #ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif scanf("%d",&t);
for(int kase=;kase<=t;kase++)
{
scanf("%d",&n);
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=;i<=n;i++)
{
scanf("%d",&b[i]);
}
memset(dp,,sizeof(dp));
for(int i=;i<=n;i++)
{
dp[i][i]=a[i]+b[i-]+b[i+];
//printf("%d ",dp[i][i]);
}
for(int i=;i<=n;i++)
{
for(int j=i+;j<=n;j++)
{
dp[i][j]=INF;
}
} // memset(dp,0,sizeof(dp)); for(int len=;len<=n;len++)
{
for(int i=;i+len<=n;i++)
{
int j=i+len;
for(int k=i;k<j;k++)
{
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]-b[k]+b[i-]);
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]-b[k+]+b[j+]);
}
}
}
printf("Case #%d: ",kase);
printf("%d\n",dp[][n]);
}
return ;
}
hdu 5115 Dire Wolf的更多相关文章
- HDU 5115 Dire Wolf 区间dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...
- 动态规划(区间DP):HDU 5115 Dire Wolf
Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...
- hdu 5115 Dire Wolf(区间dp)
Problem Description Dire wolves, also known as Dark wolves, are extraordinarily large and powerful w ...
- HDU - 5115 Dire Wolf (非原创)
Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...
- HDU 5115 Dire Wolf (区间DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:有一些狼,从左到右排列,每只狼有一个伤害A,还有一个伤害B.杀死一只狼的时候,会受到这 ...
- HDU 5115 Dire Wolf ——(区间DP)
比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: #inc ...
- [题解] HDU 5115 Dire Wolf 区间DP
考虑先枚举所有的物品中最后拿走的,这样就分成了2个子问题,即先拿完左边的,再拿完右边的,最后拿选出的那个.令dp(i,j)表示拿完[i,j]所有物品的最小代价.你可能会说,我们拿[i,j]这一段物品的 ...
- Hdu OJ 5115 Dire Wolf (2014ACM/ICPC亚洲区北京站) (动态规划-区间dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:前面有n头狼并列排成一排, 每一头狼都有两个属性--基础攻击力和buff加成, 每一头 ...
- Dire Wolf HDU - 5115(区间dp)
Dire Wolf Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)Total ...
随机推荐
- 关于C(m,n)%p的故事
序 遥远的\(\mod p\)(\(p\)是质数)大陆有一个恶魔:\[C(m,n)={m!\over n! (m-n)!}\] 于是大家有了各种求逆元的方法.这里MOD = p. 壹 for (int ...
- Swift学习笔记十三:继承
一个类能够继承(inherit)还有一个类的方法(methods),属性(property)和其他特性 一.基本的语法 class Human{ var name :String init(){ na ...
- PHP - 目录与文件
第6章 目录与文件 学习要点: 1.目录操作 2.磁盘.目录和文件计算 3.文件处理 将相关的数据组织为文件和目录等实体,这一直是计算环境的核心概念.出于这个原因,程序员需要有一种方法来获得关于文件和 ...
- IIS - HTTP 错误 500.21 - Internal Server Error 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
http://www.cnblogs.com/yc-755909659/p/3445278.html 首先观察,aspnet_regiis.exe文件是不是损坏的,如果是,重新下载,覆盖即可,在百度云 ...
- c语言,enum
在设置错误代号时,使用enum比宏更好看. #include <stdio.h> typedef enum { retOK = 0, errComInterruption = 0x1000 ...
- Qt中Ui名字空间以及setupUi函数的原理和实现
用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...
- Redis bio
还是一个很小的模块. bio就是background io的意思,既然要background,就要创建线程,创建几个线程呢?有几种类型的io,就创建几个线程.同一种类型的job需要排队,所以存放各自的 ...
- 2014/08/24——升级stepbystep修复tc不刷新问题并加入杭电bc
问题: 自从tc站点升级以后做题统计的tc一栏就不刷新了,为此全哥也更新了一下stepbystep的配置文件什么的,我仅仅要将其挂到server上即可了. 由于加了杭电的bc,看来这事儿不easy.还 ...
- tcp接收xml数据解析
避免tcp接收xml数据时加上xml数据长度,根据xml数据特点来解析recv到的xml数据 int nPos1 = 0; int nPos2 = 0; int nTempPos = 0; int n ...
- EasyUI - According 分类列表
效果: html代码: <div id="aa" class="easyui-accordion" style="width: 300px; h ...