POJ 2686 Traveling by Stagecoach
状压DP
dp[s][p]用了哪几张票,到哪个节点的最小费用。
注意:G++ %.3lf输出会WA,但C++能过;改成%.3f,C++,G++都能AC
- #include<cstdio>
- #include<cstring>
- #include<cmath>
- #include<queue>
- #include<vector>
- #include<map>
- #include<algorithm>
- using namespace std;
- const double INF = ;
- int n, m, p, a, b;
- int t[];
- struct Edge
- {
- int to;
- int dis;
- }e[];
- int tot;
- vector<int>g[];
- double dp[][];
- int main()
- {
- while (~scanf("%d%d%d%d%d", &n, &m, &p, &a, &b))
- {
- if (n == && m == && p == && a == && b == ) break;
- tot = ;
- for (int i = ; i <= m; i++) g[i].clear();
- for (int i = ; i < ( << n); i++)
- for (int j = ; j <= m; j++) dp[i][j] = INF;
- for (int i = ; i < n; i++) scanf("%d", &t[i]);
- for (int i = ; i <= p; i++)
- {
- int u, v, c; scanf("%d%d%d", &u, &v, &c);
- e[++tot].to = v; e[tot].dis = c; g[u].push_back(tot);
- e[++tot].to = u; e[tot].dis = c; g[v].push_back(tot);
- }
- dp[][a] = ;
- for (int i = ; i < ( << n); i++)
- {
- for (int j = ; j <= m; j++)
- {
- if (dp[i][j] == INF) continue;
- for (int k = ; k < n; k++)
- {
- if ((i | ( << k)) == i) continue;
- for (int s = ; s < g[j].size(); s++)
- {
- dp[(i | ( << k))][e[g[j][s]].to] = min(
- dp[(i | ( << k))][e[g[j][s]].to],
- dp[i][j] + 1.0*e[g[j][s]].dis / (1.0*t[k]));
- }
- }
- }
- }
- double ans = INF;
- for (int i = ; i < ( << n); i++)
- ans = min(ans, dp[i][b]);
- if (ans == INF) printf("Impossible\n");
- else printf("%.3f\n", ans);
- }
- return ;
- }
POJ 2686 Traveling by Stagecoach的更多相关文章
- POJ 2686 Traveling by Stagecoach(状压二维SPFA)
Traveling by Stagecoach Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3407 Accepted ...
- poj 2686 Traveling by Stagecoach ---状态压缩DP
题意:给出一个简单带权无向图和起止点,以及若干张马车车票,每张车票可以雇到相应数量的马. 点 u, v 间有边时,从 u 到 v 或从 v 到 u 必须用且仅用一张车票,花费的时间为 w(u, v) ...
- POJ 2686 Traveling by Stagecoach(状压DP)
[题目链接] http://poj.org/problem?id=2686 [题目大意] 给出一张无向图,你有n张马车票每张车票可以租用ti匹马, 用一张马车票从一个城市到另一个城市所用的时间为这两个 ...
- POJ 2686 Traveling by Stagecoach 壮压DP
大意是有一个人从某个城市要到另一个城市(点数<=30) 然后有n个马车票,相邻的两个城市走的话要消耗掉一个马车票. 花费的时间呢,是马车票上有个速率值,用边/速率就是花的时间. 问最后这个人花费 ...
- POJ 2686 Traveling by Stagecoach (状压DP)
题意:有一个人从某个城市要到另一个城市, 有n个马车票,相邻的两个城市走的话要消耗掉一个马车票.花费的时间呢,是马车票上有个速率值 ,问最后这个人花费的最短时间是多少. 析:和TSP问题差不多,dp[ ...
- poj2686 Traveling by Stagecoach
http://poj.org/problem?id=2686 Trav ...
- Traveling by Stagecoach(POJ 2686)
原题如下: Traveling by Stagecoach Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4494 Ac ...
- Traveling by Stagecoach 状态压缩裸题
Traveling by Stagecoach dp[s][v] 从源点到达 v,状态为s,v的最小值. for循环枚举就行了. #include <iostream> #inclu ...
- POJ2686 Traveling by Stagecoach(状压DP+SPFA)
题目大概是给一张有向图,有n张票,每张票只能使用一次,使用一张票就能用pi匹马拉着走过图上的一条边,走过去花的时间是边权/pi,问从a点走到b点的最少时间是多少. 用dp[u][S]表示当前在u点且用 ...
随机推荐
- 登录验证的js;JS验证邮箱 验证密码
var auth_email = 0, auth_pwd = 0, auth_captcha = 0, url_ajax = "/protected/user_ajax.php"; ...
- 转 Problem: AnyConnect was not able to establish a connection to the specified secu
不多说直接上问题,在点击连接时,也是能正常连接上输入密码,在输出用户名密码后 连接后,会出现: problem:anyconnect was net able to establish a conne ...
- cocos2d-js 显示帧序列图中的一帧
1.flashCC中打开库,在一个元件中右键->Generate Sprite Sheet...设置如下: 2.点Export后得到playerWalk.png和playerWalk.plist ...
- Json解析要点
解析Json时,昨天遇到了新的问题,之前都是解析的数组,不是数组的用类来做. 这是Json串; {"status":"00001","ver" ...
- GIT问题,error:src refspec master does not match any
将本地GIT版本库PUSH到一个GITHUB上一个空的版本库时可能会出现如下错误error:src refspec master does not match any原因: 本地版本库为空, 空目录不 ...
- Java实现随意切换VPN改变上网地区
http://www.jb51.net/article/69267.htm 这篇文章主要介绍了Java实现随意切换VPN改变上网地区,本文直接给出实例代码,需要的朋友可以参考下 在很多情况下,有些网络 ...
- hdu_4897_Little Devil I(树链剖分)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4897 题意:有三种操作,1是在树上的两个节点之间的路径改变当前的颜色,2是改变树上有且只有一个端点在u ...
- Centos修改默认网卡名
安装系统后默认的网卡名称为 enpXX ,修改为熟悉的eth0 1 vi /etc/default/grub GRUB_TIMEOUT=5GRUB_DEFAULT=savedGRUB_DISABLE_ ...
- UI和UE有什么区别呢?
UCD(以用户为中心的设计)UE(用户体验)UI(用户界面)HCI(人机交互)usability(易用性)
- C# 经典入门11章,比较
1类型比较 所有的类懂从System.Object中继承了GetType()方法,这个方法和typeof()运算符一起使用,可以确定对象的类型.例如: if(myObj.GetType()==type ...