hdu4571 背包
来源:互联网 发布:金税通网络电子发票 编辑:程序博客网 时间:2024/05/01 22:50
先对景点排序,然后按顺序背包,对初始结束节点特殊处理一下。
ACcode:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int NS=210;const int INF=10000;struct node{ int id,c,va; bool operator < (const node cmp) const{ return va<cmp.va; }}s[NS];int g[NS][NS],c[NS],top;int dp[NS][330],f[NS];int Max(int a1,int b1){ return a1>b1?a1:b1;}int Min(int a1,int b1){ return a1<b1?a1:b1;}int main(){ int W,cas=0; scanf("%d",&W); int x,y,z,w; int a,b,d,n,m,t,st,ed; while (W--) { scanf("%d%d%d%d%d",&n,&m,&t,&st,&ed); for (int i=0;i<n;i++) scanf("%d",&s[i].c),s[i].id=i; for (int i=0;i<n;i++) scanf("%d",&s[i].va); for (int i=0;i<n;i++) { for (int j=0;j<n;j++) g[i][j]=INF; g[i][i]=0; } for (int i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&d); g[a][b]=g[b][a]=Min(g[a][b],d); } for (int k=0;k<n;k++) for (int i=0;i<n;i++) for (int j=0;j<n;j++) g[i][j]=Min(g[i][j],g[i][k]+g[k][j]); sort(s,s+n),top=0; memset(dp,-1,sizeof(dp)); for (int i=0;i<n;i++) { x=s[i].id,w=s[i].va; z=g[st][x]+s[i].c; dp[x][z]=w; for (int j=0;j<top;j++) { if (w<=f[j]) break; y=c[j],z=s[i].c+g[x][y]; for (int k=t-z;k>=0;k--) { if (dp[y][k]<0) continue; dp[x][k+z]=Max(dp[x][k+z],dp[y][k]+w); } } f[top]=w; c[top++]=x; } for (int j=0;j<n;j++) for (int k=t;k>=0;k--) if (k>=g[j][ed]) dp[j][k]=dp[j][k-g[j][ed]]; else dp[j][k]=-1; x=0; for (int i=0;i<n;i++) for (int j=0;j<=t;j++) { x=Max(x,dp[i][j]); } printf("Case #%d:\n",++cas); printf("%d\n",x); } return 0;}
- hdu4571 背包
- hdu4571
- hdu4571 Travel in time
- HDU4571 Travel in time
- HDU4571 记忆化搜索
- hdu4571最短路+记忆化搜索
- HDU4571/2013年长沙赛区Travel in time
- HDU4571-区间DP,记忆化搜索,递推
- 【背包】
- 背包
- 背包
- 背包
- 背包..
- 背包
- 背包
- 背包
- 背包
- 背包
- Android调用系统自带的文件管理器进行文件选择
- Ubuntu下为Firefox安装Adobe Flash Player
- jenkins update center
- 能够按页号提取word文档文本内容的小程序,由C#实现
- kmp算法详解
- hdu4571 背包
- Calling fork from Multiple Thread Environment
- Linux学习笔记-文件属性与目录配置
- CentOS 6.3开机自动挂载磁盘和文件夹
- 如何导出Chrome已安装的某扩展Extension App
- WCF相关词汇
- 图片信息
- “ssh localhost”去掉输入密码(CentOS 6.3)
- hibernate插入数据字符长度超出