nefu1130Attack monsters(区间dp)
来源:互联网 发布:泰拉瑞亚辅助软件ios 编辑:程序博客网 时间:2024/04/28 22:47
这道题目让我改错误改了很久,但其实就是一道模板题稍稍变了个型,还有一点就是这个题是乱序的,需要排个序
下面是没优化的代码
#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>using namespace std;int n,l;int sum[305];int dp[305][305];const int INF=0x3f3f3f3f;void init(){ memset(sum,0,sizeof(sum)); memset(dp,0,sizeof(dp));}int main(){ while(scanf("%d%d",&n,&l)!=EOF) { if(n==0&&l==0) break; init(); for(int i=1;i<=n;i++) { scanf("%d",&sum[i]); } sum[n+1]=l; sort(sum+1,sum+n+2); for(int len=2;len<=n+1;len++) { for(int i=1;i+len-1<=n+1;i++) { dp[i][i+len-1]=INF; for(int k=i;k<=i+len-1;k++) { dp[i][i+len-1]=min(dp[i][i+len-1],dp[i][k]+dp[k+1][i+len-1]+sum[i+len-1]-sum[i-1]); } } } printf("%d\n",dp[1][n+1]); } return 0;}
下面是用平行四边形优化过的代码
#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>using namespace std;int n,l;int sum[305],s[305][305];int dp[305][305];const int INF=0x3f3f3f3f;void init(){ memset(sum,0,sizeof(sum)); memset(dp,0,sizeof(dp)); memset(s,0,sizeof(s));}int main(){ while(scanf("%d%d",&n,&l)!=EOF) { if(n==0&&l==0) break; init(); for(int i=1; i<=n; i++) { scanf("%d",&sum[i]); } sum[++n]=l; sort(sum+1,sum+n+1); for(int i=1; i<=n; i++) { dp[i][i]=0; s[i][i]=i;//这个循环要注意,因为n的大小改变了,所以这里不要写到读入的那里,我就因为这个改了好半天,还是太菜 } for(int len=2; len<=n; len++) { for(int i=1; i+len-1<=n; i++) { int j=i+len-1; dp[i][j]=INF; for(int k=s[i][j-1]; k<=s[i+1][j]; k++) { if(dp[i][j]>dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]) { dp[i][j]=dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]; s[i][j]=k; } } } } printf("%d\n",dp[1][n]); } return 0;}
0 0
- nefu1130Attack monsters(区间dp)
- nefu1130Attack monsters【平行四边形优化石子合并】
- hdu 4970 Killing Monsters 【树状数组(区间修改,点查询)】
- hdu4597(区间dp)
- poj1651 (区间dp)
- hdu4283(区间DP)
- poj2955(区间DP)
- poj1141(区间DP)
- hdu2476(区间DP)
- poj1651(区间DP)
- lightoj1422(区间DP)
- zoj3469(区间DP)
- hdu4745(区间DP)
- NYOJ304(区间DP)
- hdu5115(区间dp)
- poj2955(区间dp)
- poj1651(区间dp)
- hdu2476(区间dp)
- EGL的使用
- ViewPager实现视图左右滑动
- java低级小错误 未实例化对象,调用其他类方法
- 设置或获取页面信息
- 控件布局通用解决方案
- nefu1130Attack monsters(区间dp)
- Scrapy爬虫:代理IP配置
- 避免代码冗余,使用接口和泛型重构Java代码
- asp选择框只读
- MVC,MVP,MVVM到底怎么回事
- HDU 2000 ASCII码排序问题
- Effective Java 第十五条:使可变性最小化
- 《疯狂Java讲义(第3版)》.(李刚)——Java的开发准备及环境配置
- Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案