HDU 补图最短路
来源:互联网 发布:mysql 中间件 哪个好 编辑:程序博客网 时间:2024/06/07 10:33
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <queue>#include <vector>#include <set>using namespace std;const int maxn = 2e5 + 10;const int INF = 1e9 + 7;//vector <int> G[maxn];//bool vis[maxn] = {0};set <int> s1;set <int> s2;set <int> g[maxn];int d[maxn] = {0};int main () { ios_base :: sync_with_stdio(false); int t; cin >> t; while (t--) { int n,m; cin >> n >> m; s1.clear(); s2.clear(); for (int i = 1;i <= n; ++ i) {// G[i].clear(); g[i].clear(); d[i] = INF; s2.insert (i); }// int ans = 0; for (int i = 0;i < m; ++ i) { int x,y; cin >> x >> y; g[x].insert(y); g[y].insert(x); } int s; cin >> s; s2.erase(s); s1.insert(s); d[s] = 0; queue<int> q; while (!q.empty()) q.pop(); q.push(s);// set <int> :: iterator it; while (!q.empty()) { int u = q.front(); q.pop(); for (int i = 1;i <= n; ++ i) { if (s2.find(i) != s2.end() && g[u].find(i) == g[u].end()) { d[i] = min (d[i],d[u] + 1); q.push(i); s2.erase(i); } } if (s2.size() == 0) break; } int i = 1; for (;; ++ i) { if (s != i) { if (d[i] == INF) cout << -1; else cout << d[i]; ++ i; break; } } for (;i <= n; ++ i) { if (i == s) continue; if (d[i] != INF) cout << ' ' << d[i]; else { cout << ' ' << -1; } } cout << endl; } return 0;}
阅读全文
0 0
- HDU 补图最短路
- hdu 5876 Sparse Graph(补图最短路)
- hdu 5876 Sparse Graph 补图最短路
- Hdu 5876 Sparse Graph(补图最短路)
- 最短路 2544hdu
- HDU 2544 最短路
- hdu 3191 次短路
- hdu 1245 最短路
- HDU最短路总结
- hDU 最短路
- hdu 1874 (最短路)
- hdu 2112 (最短路)
- HDU-2544 最短路
- Hdu-2544 最短路
- hdu 2066 最短路
- HDU 2544 最短路
- 最短路 hdu
- hdu 2544 最短路
- 震惊!看博文之前竟然要...
- tensorflow之mnist进阶
- 使用systemctl enable 命令实现tomcat开机自启动
- P1115 最大子段和
- zookeeper集群搭建1Master、2Slaves
- HDU 补图最短路
- 自定义view走势图(二、加入动画和触摸事件)
- HDU
- Java学习笔记-数据类型划分
- OGG对于没有主键表的处理
- 大数据Spark企业级实战版【学习笔记】-----Spark Streaming案例分析
- 不忘初心,方得始终
- fiddle(二)
- myeclipse出现出现JRE System Library(unbound)的解决办法