POJ 2513 trie树+并查集判断无向图的欧拉路
生无可恋
查RE查了一个多小时。。
原因是我N define的是250500
应该是500500!!!!!!!!!
身败名裂,已无颜面对众人。。
吐槽完了 我们来说思路。。。
思路:
判有向图能否形成欧拉路
但是他给的是string,怎么转化成int呢?
trie树!
这东西有多么优美我就不说了。。。
反正写起来不难。
具体的请见代码吧
// by SiriusRen
#include <bitset>
#include <cstdio>
#define N 500500
using namespace std;
bitset<N>b;
int tot=0,num=0,f[N],n,m,ansx=0,ans=0,v[N],trie[N*10][27];
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
int get(){
int jy=0;char p=getchar();
if(p==EOF)return 0;
while(p>'z'||p<'a')p=getchar();
while(p>='a'&&p<='z'){
if(trie[jy][p-'a']==-1){
trie[jy][p-'a']=++tot;
jy=trie[jy][p-'a'];
for(int i=0;i<26;i++)trie[jy][i]=-1;
}
else jy=trie[jy][p-'a'];
p=getchar();
}
if(!trie[jy][26])return trie[jy][26]=++num;
else return trie[jy][26];
}
int main(){
for(int i=0;i<26;i++)trie[0][i]=-1;
for(int i=1;i<=500000;i++)f[i]=i;
while(n=get()){
m=get();
v[m]++;v[n]++;
f[find(n)]=find(m);
}
for(int i=1;i<=num;i++)
if(!b[find(i)])b[find(i)]=1,ans++;
for(int i=1;i<=num;i++)
if(v[i]&1)ansx++;
if(ans<=1&&(ansx==0||ansx==2))puts("Possible");
else puts("Impossible");
}
这一版都是我刷的。。。。包括vjudge。。。。。。
POJ 2513 trie树+并查集判断无向图的欧拉路的更多相关文章
- POJ 2513 字典树+并查集+欧拉路径
Description: 给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的. 解题思路: 可以用图论中欧拉路的知识来解这道题,首先可以把木 ...
- poj 2513 Colored Sticks (trie树+并查集+欧拉路)
Colored Sticks Time Limit: 5000MS Memory Limit: 128000K Total Submissions: 40043 Accepted: 10406 ...
- POJ 1308&&HDU 1272 并查集判断图
HDU 1272 I - 小希的迷宫 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- nyoj 230/poj 2513 彩色棒 并查集+字典树+欧拉回路
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=230 题意:给你许许多多的木棍,没条木棍两端有两种颜色,问你在将木棍相连时,接触的端点颜色 ...
- PKU 2513 Colored Sticks(并查集+Trie树+欧拉路径(回路))
题目大意: 给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相连接的一端必须是同颜色的. 解题思路: 可以用图论中欧拉路的知识来解这道题,首先可以把木棒两端看成节点 ...
- HDU - 1272 小希的迷宫 并查集判断无向环及连通问题 树的性质
小希的迷宫 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一 ...
- poj2513 Colored Sticks —— 字典树 + 并查集 + 欧拉回路
题目链接:http://poj.org/problem?id=2513 题解:通过这题了解了字典树.用字典树存储颜色,并给颜色编上序号.这题为典型的欧拉回路问题:将每种颜色当成一个点.首先通过并查集判 ...
- Trie、并查集、堆、Hash表学习过程以及遇到的问题
Trie.并查集.堆.Hash表: Trie 快速存储和查找字符串集合 字符类型统一,将单词在最后一个字母结束的位置上打上标记 练习题:Trie字符串统计 import java.util.*; pu ...
- zoj 2334 Monkey King/左偏树+并查集
原题链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1389 大致题意:N只相互不认识的猴子(每只猴子有一个战斗力值) 两只 ...
随机推荐
- mui scrollTo到指定位置,出现空白页及拉不动的问题解决
使用方式简介 mui 列表页使用的是 mui的插件实现的上拉加载下拉刷新,但是从详情页回到列表页时 不能回到之前的位置.所以想到了使用缓存. 第一次和第二次的试验是失败的.失败后,就想用其他办法来解决 ...
- PAT_A1078#Hashing
Source: PAT A1078 Hashing (25 分) Description: The task of this problem is simple: insert a sequence ...
- Day5 练习
1. 2. 要加强对代码效率的思考 3. 4. 知识点:1)多变量的同时赋值 2)元素的不可修改性:(1,2)=(3,4)与(a,b)= (b,a) 联想指针.地址去理解 :可用id()或t ...
- npm命令及解释
npm是Node Package Manager,也就是长说的NPM包管理器. 一般安装node.js就会一起安装. npm install npm install XXX //表示安装模块, ...
- python3使用465端口发送邮件来解决阿里云封闭25端口问题
import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr #发件人邮箱账号my_send ...
- mkdir:创建目录
mkdir:命令 1.命令详解 [功能说明] mkdir命令是“make directories”中每个单词的粗体字母组合而成,其功能是创建目录,默认情况下,如果要创建的目录已经存在,则会提示此文件 ...
- 1 java开发工具IDEA的使用
IntelliJ IDEA 2017.1汉化破解版安装图文教程(附汉化补丁) 注册码:http://idea.lanyus.com/ 点击在线生成 IntelliJ IDEA 2017.1正式版发布 ...
- ACDream - Graphs
先上题目: Graphs Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit ...
- n!最末尾非0数
最小周期串:如果s是ss的周期串,那么ss就可以表示成几个周期的s,如果s是ss的最小周期串,那么s就是ss的周期串中最小的一个.例,ZgxZgxZgxZgx的最小周期串是Zgx.{很好理解} 给你一 ...
- H - Can you answer these queries? ( POJ - 3264 )
H - Can you answer these queries? HDU - 4027 思路: 一眼思路:线段树区间修改,区间查询. 发现bug:区间的sqrt无法实现,所以还是相当于对区间的每 ...