欧拉回路——洛谷 P1333 瑞瑞的木棍
2017-06-13 10:10
155 查看
https://www.luogu.org/problem/show?pid=1333#sub
我靠,就是标准的欧拉回路嘛;
在多加一个判断是否联通;
但是直接map会超时,然后标算是字典树hush;
然后c++11有一个unordered_map
跑的飞快我靠;
stl大法好啊;
关于unordered_map大家自行百度吧
我靠,就是标准的欧拉回路嘛;
在多加一个判断是否联通;
但是直接map会超时,然后标算是字典树hush;
然后c++11有一个unordered_map
跑的飞快我靠;
stl大法好啊;
关于unordered_map大家自行百度吧
#include<bits/stdc++.h> #define Ll long long using namespace std; unordered_map<string,int>F; struct cs{int to,nxt;}a[5000005]; char s[11],ss[11]; int head[500005],lll; int A[500005],ll; bool vi[500005]; int x,y,sum,n; void init(int x,int y){ a[++lll].to=y; a[lll].nxt=head[x]; head[x]=lll; } void dfs(int x){ vi[x]=1;n++; for(int k=head[x];k;k=a[k].nxt) if(!vi[a[k].to])dfs(a[k].to); } int main() { while(scanf("%s %s",s,ss)!=-1){ if(!F[ s])x=F[s ]=++ll;else x=F[s ]; if(!F[ss])y=F[ss]=++ll;else y=F[ss]; A[x]++;A[y]++;init(x,y);init(y,x); } dfs(1); if(n<ll){printf("Impossible");exit(0);} for(int i=1;i<=250000;i++)if(A[i]&1)sum++; if(sum!=0&&sum!=2)printf("Impossible");else printf("Possible"); }
相关文章推荐
- 洛谷P1333 瑞瑞的木棍(欧拉回路)
- 洛谷.1333.瑞瑞的木棍(欧拉路径 Hash)
- 无序字母对_洛谷1341_欧拉回路
- 记录个人在洛谷试练场做题历程:二分答案:膨胀的木棍
- 欧拉回路 (洛谷1341 无序字母对)
- 洛谷 P1120 小木棍 [数据加强版 ]
- 【洛谷】P1120 小木棍[数据加强版]
- AC日记——小木棍【数据加强版】 洛谷 P1120
- 洛谷P1120小木棍[DFS]
- 洛谷 P1120 小木棍 [数据加强版]
- 洛谷P1120 小木棍(dfs)
- 小木棍_洛谷1120_搜索
- 洛谷 【P1120】 小木棍
- 洛谷1341无序字母对(无向图欧拉回路)
- 洛谷P1341 无序字母对(欧拉回路)
- P1334 瑞瑞的木板 洛谷
- 【搜索】洛谷 P1120 小木棍 [数据加强版]
- 洛谷1120 小木棍 [数据加强版] dfs+剪枝(史上最详尽)
- 洛谷1120小木棍
- 无序字母对 洛谷 1341 欧拉通路/欧拉回路