[弱校联萌2016]2016弱校联盟十一专场10.2
2016-10-02 17:22
330 查看
比赛链接:https://www.bnuoj.com/v3/contest_show.php?cid=8520
A.无非两种情况,点在体里和点在体外。在体外分三种情况,分别是到顶点的距离最小、到棱的距离最小、到面的距离最小。坑在long long于是悲催了一发。
F
A.无非两种情况,点在体里和点在体外。在体外分三种情况,分别是到顶点的距离最小、到棱的距离最小、到面的距离最小。坑在long long于是悲催了一发。
#include <bits/stdc++.h> using namespace std; typedef pair<int,int> pii; const int maxn = 100100; const int inf = 90000000; int n, m, q; int u, v; map<pii,bool> vis; map<pii,int> dis; vector<int> G[maxn]; void bfs(int s, int t) { queue<int> q; int u, v; q.push(s); dis[pii(s,s)] = 0; vis[pii(s,s)] = 1; while(!q.empty()) { u = q.front(); q.pop(); if(u == t) return; for(int i = 0; i < G[u].size(); i++) { v = G[u][i]; dis[pii(u,v)] = dis[pii(v,u)] = 1; vis[pii(u,v)] = vis[pii(v,u)] = 1; if(dis.find(pii(s,t)) == dis.end()) { dis[pii(s,v)] = dis[pii(s,u)] + 1; dis[pii(v,s)] = dis[pii(u,s)] + 1; vis[pii(s,v)] = vis[pii(v,s)] = 1; q.push(v); } } } } int main() { freopen("in", "r", stdin); while(~scanf("%d%d%d",&n,&m,&q)) { vis.clear(); dis.clear(); for(int i = 1; i <= n; i++) G[i].clear(); for(int i = 0; i < m; i++) { scanf("%d%d",&u,&v); if(vis.find(pii(u,v)) == vis.end()) { vis[pii(u,v)] = 1; vis[pii(v,u)] = 1; G[u].push_back(v); G[v].push_back(u); } } vis.clear(); int x, y; for(int i = 0; i < q; i++) { scanf("%d%d",&x,&y); if(x == y) puts("0"); else { if(vis.find(pii(x,y)) != vis.end()) { printf("%d\n", dis[pii(x,y)]); } else { bfs(x, y); printf("%d\n", dis[pii(x,y)]); } } } } return 0; }
F
相关文章推荐
- [弱校联萌2016]2016弱校联盟十一专场10.5
- [弱校联萌2016]2016弱校联盟十一专场10.3
- 2016弱校联盟十一专场10.2 Longest Increasing Subsequence
- 2016弱校联盟十一专场10.2——Floyd-Warshall
- 2016弱校联盟十一专场10.2 Longest Increasing Subsequence
- 2016弱校联盟十一专场10.2部分题解
- (2016弱校联盟十一专场10.2) A.Nearest Neighbor Search
- 2016弱校联盟十一专场10.2——Around the World
- 2016弱校联盟十一专场10.2---Around the World(深搜+组合数、逆元)
- 2016弱校联盟十一专场10.3 We don't wanna work!
- 2016弱校联盟十一专场10.3---Similarity of Subtrees(深搜+hash、映射)
- 2016弱校联盟十一专场10.7(12点场)-M. Subimage Recognition
- 2016弱校联盟十一专场10.5 I Increasing or Decreasing(数位dp)
- 2016弱校联盟十一专场10.3---We don't wanna work!(STL--set的使用)
- 2016弱校联盟十一专场10.5 F Fibonacci of Fibonacci(矩阵快速幂+找循环节)
- (2016弱校联盟十一专场10.5) F. Fibonacci of Fibonacci (暴力 + 循环节)
- 2016弱校联盟十一专场10.3 C. We don't wanna work!(集合操作)
- 2016弱校联盟十一专场10.5(12点场) Increasing or Decreasing
- 2016弱校联盟十一专场10.3 A Best Matched Pair(水)
- 2016弱校联盟十一专场10.5 F Fibonacci of Fibonacci(矩阵快速幂 + 循环节)