hdu 5115 区间dp 狼BUFF
来源:互联网 发布:233网校软件下载 编辑:程序博客网 时间:2024/06/05 10:59
题目大意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力。你杀死一只狼。你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时,自己受到的伤害最小。(提醒,狼杀死后就消失,身边原本相隔的两只狼会变成相邻,而且不需要考虑狼围城环这种情况)
输入要求:总共T组数据,每组N只狼,按顺序输入全部狼的主动攻击力和然后再按顺序输入全部狼的附带攻击力
输出要求:Case #x: y x第几组数据,y最少受到的伤害
思路引导:首先所有狼的主动攻击一定是必须全部加上的然后,然后就是调整附带伤害的顺序来求出最小值。
dp[l][r]代表l-r受到的伤害总和,dp[l][r]=min(dp[l][r],dp[l][k-1]+dp[k+1][r]+a[k]+b[l-1]+b[r+1]);
注意的地方就是把端点处理一下。
import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;//ctrl shift o //Array.fill(dp[i],inf)class MyInputStream extends InputStream{public BufferedInputStream bis=new BufferedInputStream(System.in);public int read() throws IOException{int i;while((i = bis.read())<48) {if(i==-1)return -1;}int temp=0;while(i>47) {temp=temp*10+i-48;i=bis.read();}return temp;}}public class Main {static int INF=(int)1e9;static final int maxn=505;static long [][]dp=new long[maxn][maxn];static int []a=new int[maxn];static int []b=new int[maxn];public static int gcd(int a,int b) {if(a<b) return gcd(b,a);if(a%b==0) return b;return gcd(b,a%b);}private static MyInputStream cin;public static void main(String[] args) throws IOException{cin = new MyInputStream();int t=cin.read();for(int cas=1;cas<=t;cas++){int n=cin.read();for(int i=1;i<=n;i++) {a[i]=cin.read();}for(int i=1;i<=n;i++) {b[i]=cin.read();}for(int i=1;i<=n;i++) {for(int j=i;j<=n;j++) {dp[i][j]=INF;}}b[0]=0;b[n+1]=0;for(int i=0;i<=n;i++) {dp[0][i]=0;dp[i][n+1]=0;}int len;for(len=1;len<=n;len++) {for(int l=1;l<=n-len+1;l++) {int r=l+len-1;for(int k=l;k<=r;k++) {dp[l][r]=Math.min(dp[l][r],dp[l][k-1]+dp[k+1][r]+a[k]+b[l-1]+b[r+1]);}}}System.out.printf("Case #%d: ",cas);System.out.println(dp[1][n]);}}}
阅读全文
0 0
- hdu 5115 区间dp 狼BUFF
- hdu 5115 区间dp
- hdu 5115 区间dp
- HDU 5115 区间DP
- hdu 5115 区间dp
- HDU-5115-区间DP
- ------区间DP hdu 5115
- hdu 5115 区间dp
- 【DP】 HDU 5115 Dire Wolf 区间DP
- hdu 5115 Dire Wolf 区间DP
- hdu 5115 Dire Wolf (区间DP)
- HDU 5115 Dire Wolf (区间DP)
- hdu 5115 Dire Wolf(区间DP)
- HDU 5115Dire Wolf(区间dp)
- hdu 5115 Dire Wolf【区间DP】
- HDU 5115 Dire Wolf(区间DP)
- HDU 5115 Dire Wolf (区间dp)
- HDU 5115 Dire Wolf(区间DP)
- python学习笔记7:对象引用与对象
- 单例模式--实现多文档窗口(MDI)
- 文件下载代码(十一)
- LintCode练习-12. 带最小值操作的栈
- 设计模式怎么使用,如何选择设计模式
- hdu 5115 区间dp 狼BUFF
- 2017/12/05
- 1.1.2 Mac上面搭建Eclipse+Java+Maven环境
- 微服务架构之分布式事务解决方案一
- JavaScript的内置对象
- Java 笔记 之 类型转换
- PAT 1047. 编程团体赛(20)
- Python 3.X 关键字
- 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第三篇 新版uboot(2015.04-r0)网卡移植(RTL8211E)