PAT 1030. Travel Plan (30)
来源:互联网 发布:js上两个兄弟元素 编辑:程序博客网 时间:2024/04/25 21:29
#include<iostream>#include<vector>#include<cstring>#define MAX 501#define MAXWEIGHT 250005using namespace std;int n, m, s, d;int adj_dis[MAX][MAX] = { 0 };int adj_cost[MAX][MAX] = { 0 };int min_len = MAXWEIGHT, min_cost = MAXWEIGHT;int vst[MAX] = { 0 };vector<int> path, final_path;void dfs(int v){if (v == d){int len = 0, cost = 0;for (int i = 1; i < path.size(); i++){len += adj_dis[path[i]][path[i - 1]];cost += adj_cost[path[i]][path[i - 1]];}if (len < min_len){min_len = len; min_cost = cost;final_path.resize(path.size());memcpy(&final_path[0], &path[0], path.size()*sizeof(int));}else if (len == min_len&&min_cost > cost){min_cost = cost;final_path.resize(path.size());memcpy(&final_path[0], &path[0], path.size()*sizeof(int));}vst[v] = 0;path.pop_back(); return;}for (int i = 0; i < n; i++){if (adj_dis[v][i] != 0 && !vst[i]){path.push_back(i);vst[i] = 1;dfs(i);}}vst[v] = 0;path.pop_back();return;}int main(){cin >> n >> m >> s >> d;for (int i = 0; i < m; i++){int a, b, dis, cost;cin >> a >> b >> dis >> cost;adj_dis[a][b] = adj_dis[b][a] = dis;adj_cost[a][b] = adj_cost[b][a] = cost;}path.push_back(s); vst[s] = 1;dfs(s);cout << final_path[0];for (int i = 1; i < final_path.size(); i++){cout << " " << final_path[i];}cout << " " << min_len << " " << min_cost;}
0 0
- 1030. Travel Plan (30)-PAT
- 1030. Travel Plan (30) PAT
- PAT 1030. Travel Plan (30)
- PAT 1030. Travel Plan (30)
- PAT 1030. Travel Plan (30)
- 【PAT】1030. Travel Plan (30)
- pat 1030. Travel Plan (30)
- PAT 1030. Travel Plan (30)
- PAT 1030. Travel Plan
- 【PAT】1030. Travel Plan
- 【PAT Advanced Level】1030. Travel Plan (30)
- PAT 1030. Travel Plan (30) 图论
- PAT A 1030. Travel Plan (30)
- PAT (Advanced) 1030. Travel Plan (30)
- PAT(A) - 1030. Travel Plan (30)
- 【PAT甲级】1030. Travel Plan (30)
- PAT甲级练习1030. Travel Plan (30)
- PAT甲级1030. Travel Plan (30)
- ubuntu下允许root用户ssh远程登录
- java 学习列表
- 通达OA 尝试一下进行通达OA的培训
- Windows7任意OEM预装版升级到旗舰版教程
- 题目1054:字符串内排序 题目1055:数组逆置 题目1058:反序输出
- PAT 1030. Travel Plan (30)
- Java中try catch的使用技巧及注意事项
- Paths through the Hourglass+uva+dp
- 关于jquery版本为1.6+使用checkbox的checked属性来判断一个checkbox是否被选中问题
- 无法连接到VS2010web开发服务器
- ecshop的二级流程图简要分析
- 设计模式 之 创建型模式
- 安装erlang
- Eclipse 异常--A java is Exception