城市平乱
来源:互联网 发布:数控冲床编程招聘 编辑:程序博客网 时间:2024/05/01 22:29
城市平乱
dijkstra模板题.
//// Created by luozujian on 17-10-17.//#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<queue>#include<vector>#define INF 0x3f3f3f3fusing namespace std;const int maxv = 1e3+5;const int maxp = 1e2+5;typedef pair<int,int> P;struct edge{ int to,cost;};vector<edge>G[maxv];int d[maxv];int a[maxp];int n,m,p,q;void dijkstra(int v){ priority_queue<P,vector<P>,greater<P> >que; fill(d,d+m+1,INF); d[v] = 0; que.push(P(0,v)); while(que.size()) { P p = que.top();que.pop(); int v = p.second; if(d[v] < p.first) continue; for(int i=0;i<G[v].size();i++) { edge e = G[v][i]; if(d[e.to] > d[v] + e.cost) { d[e.to] = d[v] + e.cost; que.push(P(d[e.to],e.to)); } } }}void solve(){ dijkstra(q); int ans = INF; for(int i=1;i<=n;i++) { ans = min(ans,d[a[i]]); } printf("%d\n",ans);}int main(){ int t; scanf("%d",&t); while(t--) { for(int i=0;i<maxv;i++)G[i].clear(); //一定要记得清零 scanf("%d%d%d%d",&n,&m,&p,&q); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=0;i<p;i++) { int s,t,cost; scanf("%d%d%d",&s,&t,&cost); edge e; e.to = t; e.cost = cost; G[s].push_back(e); e.to = s; //无向图 e.cost = cost; G[t].push_back(e); } solve(); } return 0;}
阅读全文
0 0
- 城市平乱
- 城市平乱
- 城市平乱
- 城市平乱
- 城市平乱
- 城市平乱
- 城市平乱
- 城市平乱
- nyoj 115 城市平乱
- NYOJ115 城市平乱
- Dijkstra--城市平乱
- nyoj-115-城市平乱
- nyoj 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ115 城市平乱 【SPFA】
- NYOj115-城市平乱-Dijkstra-
- NYOJ-115 城市平乱
- 總結——關於2017 10 13測試的分析總結
- Java注解
- IMX6Q Ft5216触屏驱动移植
- HDU-1754 I Hate It (线段树裸题 splay模板 单点修改 区间询问最大值)
- Mac 下载安装和卸载mysql
- 城市平乱
- java序列化与反序列化
- Windows玩转Caffe(五): mnist模型可视化探知,Matlab绘制其Accuracy和Loss曲线
- 微信小程序实战--高仿人民日报
- 建造者模式
- 安卓小项目之Everyday(1)---使用fragment实现选项卡
- 谈谈深度学习中的 Batch_Size
- Lock和synchronized的区别和使用
- export default 和 export 区别