hdu 5115 区间dp ***
2015-07-20 17:34
267 查看
题意:有n只狼,每只狼有两种属性,一种攻击力一种附加值,我们没杀一只狼,那么我们受到的伤害值为这只狼的攻击值与它旁边的两只狼的附加值的和,求把所有狼都杀光受到的最小的伤害值。
枚举中间k作为最后杀死的狼
枚举中间k作为最后杀死的狼
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<map> using namespace std; #define MOD 1000000007 const int INF=0x3f3f3f3f; const double eps=1e-5; typedef long long ll; #define cl(a) memset(a,0,sizeof(a)) #define ts printf("*****\n"); const int MAXN=1005; int n,m,tt; int a[MAXN],b[MAXN],dp[MAXN][MAXN]; int main() { int i,j,k; #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); #endif scanf("%d",&tt); int ca=1; while(tt--) { scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",a+i); } for(i=0;i<n;i++) { scanf("%d",b+i); } for(int d=0;d<n;d++) { for(i=0;i+d<n;i++) { j=i+d; dp[i][j]=INF; for(k=i;k<=j;k++) { dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k+1][j]+a[k]+b[i-1]+b[j+1]); } } } printf("Case #%d: %d\n",ca++,dp[0][n-1]); } }
相关文章推荐
- hdoj 1068 Girls and Boys【匈牙利算法+最大独立集】
- 求同存异:持久化从文件到数据库引发的架构变动
- Java Reflection教程
- JAVA 1.6 生成的webService 纯JAVA工程获取请求IP方法
- OC_字符串NSString
- iOS前期OC训练OC_04NSString
- VS2012 下编译boost1.52
- URAL - 1519 Formula 1 (插头DP)
- android Json解析全
- Windows Debug
- swiper 技巧
- Swiper基本上使用
- MySQL存储过程中使用WHILE循环语句的方法
- oracle创建表空间和用户
- Python变量的作用域
- 源代码安装mysql
- 源代码安装mysql
- Noip2011瑞士轮题解
- Android启动Activity之后阻止EditText自动获得焦点
- 使用gradle上传项目到jcenter