题目链接: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的更多相关文章

  1. HDU 5115 Dire Wolf 区间dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...

  2. 动态规划(区间DP):HDU 5115 Dire Wolf

    Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...

  3. hdu 5115 Dire Wolf(区间dp)

    Problem Description Dire wolves, also known as Dark wolves, are extraordinarily large and powerful w ...

  4. HDU - 5115 Dire Wolf (非原创)

    Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if not ...

  5. HDU 5115 Dire Wolf (区间DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:有一些狼,从左到右排列,每只狼有一个伤害A,还有一个伤害B.杀死一只狼的时候,会受到这 ...

  6. HDU 5115 Dire Wolf ——(区间DP)

    比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: #inc ...

  7. [题解] HDU 5115 Dire Wolf 区间DP

    考虑先枚举所有的物品中最后拿走的,这样就分成了2个子问题,即先拿完左边的,再拿完右边的,最后拿选出的那个.令dp(i,j)表示拿完[i,j]所有物品的最小代价.你可能会说,我们拿[i,j]这一段物品的 ...

  8. Hdu OJ 5115 Dire Wolf (2014ACM/ICPC亚洲区北京站) (动态规划-区间dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115 题目大意:前面有n头狼并列排成一排, 每一头狼都有两个属性--基础攻击力和buff加成, 每一头 ...

  9. Dire Wolf HDU - 5115(区间dp)

    Dire Wolf Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)Total ...

随机推荐

  1. 浅谈初次搭建nginx+php+mysql遇到的问题

    先说明下我linux上的环境: nginx + php(5.5.10) + mysql 開始的源代码已经在本地写好,并调试成功(本地的环境是用XAMPP的默认配置).在把代码上传至linux上时,出现 ...

  2. 一个带动画效果的颜色选择对话框控件AnimatedColorPickerDialog

    android4.4的日历中选择日程显示颜色的时候有一个颜色选择对话框非常漂亮,模仿他的界面我实现了一个类似的对话框,而且带有动画效果. 代码的实现可讲的地方不多,主要是采用了和AlertDialog ...

  3. Hough变换在opencv中的应用

    霍夫曼变换(Hough Transform)的原理 霍夫曼变换是一种可以检测出某种特殊形状的算法,OpenCV中用霍夫曼变换来检测出图像中的直线.椭圆和其他几何图形.由它改进的算法,可以用来检测任何形 ...

  4. LoadRunner监控数据库服务器

    使用LoadRunner的数据库服务器资源监控器,可以在场景或会话步骤运行期间监控DB2.Oracle.SQL Server或Sybase数据库的资源使用率.在场景或会话步骤运行期间,使用这些监控器可 ...

  5. DOM方法入门 - 第二课

    1.console.log()是吧元素显示在控制台2.appendChild() 就是将元素追加到末尾3.innerHTML获取的是元素里面的所有内容包括里面的子元素4.innerText获取的是元素 ...

  6. db2迁移至oracle过程中的问题

    (1)时间日期问题: db2中‘2013-07-17 00:02:55’   oracle中to_date('2013-07-17 00:02:55' , 'YYYY-MM-DD HH24:MI:SI ...

  7. C++数据结构之二叉树

    之前打算编算法类的程序,但是搞了几次英雄会后,觉得作为一个还在学习阶段的学生,实在是太浪费时间了,并不是没意义,而是我的基础还不牢固啊.所以转变了思路,这个学期打算分别用C++.Python.Java ...

  8. ubunut在系统恢复模式下无法改动rootpassword的分析和解决

    前些日子本猫的ubuntu 14.10貌似出了点问题,想改动下rootpassword,可是无奈原系统有错正常情况下无法改动啊.这是逼我重装的节奏吗? 在ubuntu开机后马上按住left_shift ...

  9. SharePoint 2013 &quot;通知我&quot;简单的功能

    简单的功能 "通知我"内部列表或文档库中的主要项目.加入/删除/修改等操作,用户的E- mail通知设定功能:设置列表或文档库通知的能力,有可能设置通知为一个单一的项目.这是Sha ...

  10. PHP学习之-1.2 认识PHP脚本标识

    想在代码中实现PHP代码非常简单,如下面代码 <?php echo "和我一起学习php吧"; ?> 就像你在编写javascript脚本中需要写<script& ...