POJ 2686_Traveling by Stagecoach【状态压缩DP】
来源:互联网 发布:不锈钢肥皂 知乎 编辑:程序博客网 时间:2024/06/03 16:47
题意:
一共有m个城市,城市之间有双向路连接,一个人有n张马车票,一张马车票只能走一条路,走一条路的时间为这条路的长度除以使用的马车票上规定的马车数,问这个人从a出发到b最少使用时间。
分析:
状态压缩dp,用
代码:
#include<cstdio>#include<cmath>#include<iostream>#include<cstring>using namespace std;int n, m, p, a, b;const int maxn =1<<10, maxm = 35, INF = 0x3fffffff;double dp[maxn][maxm];int dist[maxm][maxm], t[maxm];int main (void){ while(~scanf("%d%d%d%d%d",&n,&m,&p,&a,&b)&&n+m+p+a+b!=0){ for(int i = 0; i < n; i++) scanf("%d",&t[i]); int x, y, z; memset(dist,-1,sizeof(dist)); for(int i = 0; i < 1<< n; i++){ fill(dp[i]+1, dp[i] + m+1, INF); } dp[(1<<n)-1][a] = 0; for(int i = 0; i < p; i++){ scanf("%d%d%d",&x,&y,&z); dist[x][y] = z; dist[y][x] = z; } for(int s = (1<<n) - 2; s >=0; s--){ res = min(res, dp[s][b]); for(int j = 1; j <= m; j++ ){ for(int i = 0; i < n; i++){ if(!(s&1<<i)){ for(int k = 1; k <= m; k++){ if(dist[k][j]>=0){ dp[s][j] = min(dp[s][j], dp[s|(1<<i)][k] + (double)dist[k][j]/t[i]); } } } } } } double res = INF; for(int s = (1<<n) - 1; s >=0; s--) if(res==INF) printf("Impossible\n"); else printf("%.6f\n",res); } return 0;}
0 0
- POJ 2686_Traveling by Stagecoach【状态压缩DP】
- poj 2686 Traveling by Stagecoach ---状态压缩DP
- POJ 2686 Traveling by Stagecoach 状态压缩DP
- Traveling by Stagecoach(POJ-2686)(状态压缩DP)
- POJ 2686 Traveling by Stagecoach (状态压缩DP)
- POJ 2686 Traveling by Stagecoach(状态压缩DP)
- POJ 2686-Traveling by Stagecoach(DAG图-状态压缩DP)
- POJ 2686 Travelling by Stagecoach(状态压缩dp)
- poj 2686 Traveling by Stagecoach(状态压缩dp)
- poj 2686 Traveling by Stagecoach【状态压缩】
- poj 2686 Traveling by Stagecoach 状态压缩
- POJ - 2686 ——Traveling by Stagecoach (状态压缩DP)
- poj2686Traveling by Stagecoach状态压缩dp
- 北大ACM2686——Traveling by Stagecoach~~状态压缩DP
- poj2686(Traveling by Stagecoach)状态压缩dp+DAG
- POJ 2686 Traveling by Stagecoach 壮压DP
- poj 2686 Traveling by Stagecoach(状压dp)
- POJ 2686 Traveling by Stagecoach(状压DP)
- 快速幂和矩阵快速幂
- Android ViewPager 图片无限滑动和根据图片数量自动生成的小圆点
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
- android studio 碰到问题
- 根据路径获取视频、图片的缩略图
- POJ 2686_Traveling by Stagecoach【状态压缩DP】
- Android 开发系列(4) - JNIEnv::FindClass 的问题
- shell脚本expect命令send特殊字符
- 在线安装rar和unrar命令
- php将一个数值切成N份
- 经典算法学习——归并排序
- Oracle 的 bulk collect 和 forall 用法
- linux 线程同步 信号量
- RHCE 学习笔记(23) - 磁盘格式化和分区