hdu -4284 Travel(状态压缩)
来源:互联网 发布:bp神经网络算法推导 编辑:程序博客网 时间:2024/05/16 13:38
题意:小P去旅游,给你n个城市,m条路以及m条路的花费,还有一些特定的城市,这些城市必须经过,并且到达这一城市还要先拿到证,在工作去挣钱;
问你是否能通过所有的特定城市。
题解:状态方程:dp[i|(1<<k)][k] = max(dp[i|(1<<k)][k],dp[i][j] - d[num[k]][num[j]] - D[k]+C[k]);
表示到达第k个城市的的状态的最多的钱
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int M = 1<<16;#define INF 2122219134int dp[M+2][20];int d[105][105];int num[20],C[20],D[20];int n;void Floyd(){ for(int k = 1;k <= n;k++) for(int i = 1;i <= n;i++) for(int j = 1;j <= n;j++) if (d[i][k] < INF && d[k][j] < INF && d[i][j] > d[i][k]+d[k][j]) d[i][j] = d[i][k] + d[k][j];}int main(){ int t,u,v,w; int m,money,H; cin >> t; while(t--){ cin >> n >> m >> money; memset(d,126,sizeof(d));// cout << d[0][0] << endl; for(int i = 1;i <= n;i++) d[i][i] = 0; for(int i = 0;i < m;i++){ cin >> u >> v >> w; d[u][v] = d[v][u] = min(d[u][v],w); } Floyd(); cin >> H; memset(dp,-1,sizeof(dp)); for(int i = 0;i < H;i++){ cin >> num[i] >> C[i] >> D[i]; if(money > d[num[i]][1] + D[i]) dp[1<<i][i] = max(dp[1<<i][i],money - d[num[i]][1] - D[i] + C[i]); } int cnt = (1<<H) - 1; for(int i = 0;i < cnt;i++){ for(int j = 0;j < H;j++){ if(!(i&(1<<j))) continue; for(int k = 0;k < H;k++){ if(i&(1<<k)) continue; if(dp[i][j] >= d[num[j]][num[k]] + D[k]) dp[i|(1<<k)][k] = max(dp[i|(1<<k)][k],dp[i][j] - d[num[j]][num[k]] - D[k] + C[k]); } } } int flag = 0; for(int i = 0;i < H;i++){ if(dp[cnt][i] - d[num[i]][1] >= 0){ flag = 1;break; } } if(flag) cout << "YES" << endl; else cout << "NO" << endl; }}
0 0
- hdu -4284 Travel(状态压缩)
- Hdu 4284 Travel(状态压缩)
- HDU 4284 Travel / 状态压缩DP
- Hdu 4284 Travel 状态压缩(TSP)
- hdu 4284 Travel(压缩DP,4级)
- HDU 4284 Travel[Floyd+状态DP]
- HUD 4284 Travel && POJ 3229 The Best Travel Design(状态压缩)
- HDU 4284 Travel(12年天津 状态DP)
- hdu 4284 Travel
- HDU 4284 Travel
- HDU 4284 Travel
- HDU 4284 Travel
- poj 3311 状态压缩 hdu 4284 TSP
- hdu 4284(状态压缩)&& poj 3311 &&,,,
- hdu 4284 floyed+状态压缩dp
- HDU 4284(状态压缩dp)
- poj 3229 The Best Travel Design ( 图论+状态压缩 )
- (中等) 状态压缩dp HOJ 2480 The best travel design
- 颜色视觉理论:三色学与四色学
- Solr 多核(Multicore)使用场景及配置步骤
- PHP内核探索:新垃圾回收机制说明
- 如何 搜索csdn的博客 排名 靠前的大牛
- 找工作党收集的PHP笔试题目
- hdu -4284 Travel(状态压缩)
- svn服务器搭建
- sql安装及使用方法
- 图解正向代理、反向代理、透明代理
- 使用AsyncTask实现异步文件下载
- Linux命令之dos2unix
- PHP大小写敏感规则(转自songkexin的博客)
- 程序猿才懂幽默 haha
- 基于for循环的几个常用排序方法