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只相互不认识的猴子(每只猴子有一个战斗力值) 两只 ...
随机推荐
- Mysql正则
摘自:http://www.runoob.com/mysql/mysql-regexp.html 模式 描述 ^ 匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性, ...
- 通过Git向Github提交代码(Windows系统)
1.新建项目 在GitHub选择并创建一个项目.首先,登录 GitHub,单击页面右上角加号“+” ,选择“New repository” 选项. 填写项目名称及描述,默认项目为“Public”,如果 ...
- BZOJ 4327: JSOI2012 玄武密码 后缀自动机
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...
- eas之编辑界面中分录默认携带的标题栏
this.kdtEntrys_detailPanel.setTitle("物件内容"); KDContainer kdtEntrys_Container = (KDContai ...
- malloc实现机制、缓冲机制、文件操作、mmap虚拟地址(day06)
一.malloc的实现机制(缓冲机制) 库函数跟系统调用之间的关系 什么是缓冲? 内存分配的原理. 封装 函数A的实现代码中调用了函数B.函数B的功能是函数A主要的功能,这样就说函数A封装了函数B. ...
- 继承(day09)
二十一 继承(Inheritance) ... 子类的构造函数和析构函数 5.1 子类的构造函数 )如果子类构造函数没有显式指明基类子对象的初始化方式,那么该子对象将以无参方式被初始化. )如果希望基 ...
- Linux—Ubuntu14.0.5安装mongo
1.安装mongo sudo apt-get install mongo 2.如果遇到找不到安装包运行,那就更新资源列表 sudo apt-get update 3.安装成功会自动运行mongo pg ...
- PHP循环输出二维数组的数据
//下面是一个例子$g_id = isset($_GET['id'])?$_GET['id']:'1';//定义变量$g_id,使用三元运算符是为了避免出现waring $p_id = ($g_id& ...
- 继续聊WPF——设置网格控件列标题的样式
我很奇怪的是,微软那厮是怎么搞的,Blend里面居然不能编辑GridView的样式,十万般无奈之下,只好手写XAML来处理了. 要想知道一个控件的样式是如何设置,看控件类的定义很重要,我们来看看Gri ...
- Vue + Element 小技巧
说是小技巧 ,其实就是本人 就是一个小菜比 .如有大佬可以纠正,或者再救救我这个小菜比 跪谢 1.当后台返回一个字段需要根据不同字段内容在表格内显示相对应的文字(字段内容是死的,表格内需要显示对 ...