POJ 2686 Traveling by Stagecoach
来源:互联网 发布:天正建筑软件学习 编辑:程序博客网 时间:2024/05/16 04:45
//状态压缩实际上是将一个集合用一个数来表示#include<stdio.h>#include<string>#include<vector>using namespace std;#define INF 1<<30#define MAX_N 10#define MAX_M 40//输入int n,m,a,b,p;int t[MAX_N];int d[MAX_M][MAX_M];//图的邻接矩阵表示(-1表示没有边)//dp[S][v]:=到达剩下的车票集合为S并且现在在城市v的状态所需要的最小花费double dp[1<<MAX_N][MAX_M];double min(double a,double b) {return a<b?a:b;}void solve() {int i,u,v,S;for(i=0;i< (1<<n);i++) {fill(dp[i],dp[i]+m,INF);//用足够大的值初始化}dp[(1<<n)-1][a-1]=0;double res=INF;for(S=(1<<n)-1;S>=0;S--) {res=min(res,dp[S][b-1]);for(v=0;v<m;v++) {for(i=0;i<n;i++) {if (S>>i &1) {for(u=0;u<m;u++) {if (d[v][u]>=0) {//使用车票i,从v移动到udp[S& ~(1<<i)][u]=min(dp[S&~(1<<i)][u],dp[S][v]+(double)d[v][u]/t[i]);}}}}}}if (res==INF) {//无法到达printf("Impossible\n");}else {printf("%.3f\n",res);}}int main() {#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);#endifint i,x,y,z;while(scanf("%d%d%d%d%d",&n,&m,&p,&a,&b)!=EOF && n!=0) {memset(d,-1,sizeof(d));for(i=0;i<n;i++) scanf("%d",&t[i]);for(i=0;i<p;i++) {scanf("%d%d%d",&x,&y,&z);d[x-1][y-1]=z;//无向图d[y-1][x-1]=z;}solve();}return 0;}
0 0
- POJ-2686-Traveling by Stagecoach
- POJ 2686 Traveling by Stagecoach
- POJ 2686 Traveling by Stagecoach
- POJ 2686 Traveling by Stagecoach
- POJ 2686 Traveling by Stagecoach
- poj 2686 Traveling by Stagecoach
- POJ 2686 Traveling by Stagecoach
- Traveling by Stagecoach POJ
- POJ 2686 Traveling by Stagecoach 壮压DP
- poj 2686 Traveling by Stagecoach(状压dp)
- poj 2686 Traveling by Stagecoach【状态压缩】
- POJ 2686 Traveling by Stagecoach(状压DP)
- 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 状态压缩
- POJ 2686 Traveling by Stagecoach 笔记
- 我去了,这年头还能做网站吗?太便宜了吧,6块钱一个站
- poj2190
- The Snail(杭电 1302)
- 第11周项目六 回文~素数(7)
- How tomcat works 笔记 01
- POJ 2686 Traveling by Stagecoach
- poj2209
- JavaScript this个人理解
- 量化投资精华贴
- 开源规则流引擎实践
- poj2365
- 逍遥棋牌怎么样,是不是骗人的?
- 第一章 错误处理
- poj2575