POJ2513_Colored Sticks_KEY
题目大意:给你若干根木棍,每根木棍有前后两种颜色,连接两根木棍需要前后颜色相同,求能否将所有木棍连接在一起。
Solution:
不要将木棍看成点,将颜色看成点。
其实就是求是否存在欧拉路径。
有欧拉路径要满足两个条件:
图是连通图。
没有或只有两个入度为奇数的点。
判断连通性用并查集。
枚举每个点判断入度就好了。
code:
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std; struct trie{
int tr[][],v[],cnt,tot;
trie(){memset(tr,,sizeof tr),memset(v,,sizeof v),cnt=tot=;}
int add(char *a)
{
int len=strlen(a),now=;
for(int i=;i<len;i++){
if(!tr[now][a[i]-'a'])tr[now][a[i]-'a']=++cnt;
now=tr[now][a[i]-'a'];
}
if(!v[now])v[now]=++tot;
return v[now];
}
}T;
char S1[],S2[];
int into[],fa[];
int getf(int x){return x==fa[x]?x:fa[x]=getf(fa[x]);} int main()
{
// freopen("x.txt","r",stdin);
for(int i=;i<=;i++)fa[i]=i;
while(cin>>S1>>S2){
int k1=T.add(S1),k2=T.add(S2);
into[k1]++,into[k2]++;
fa[getf(k1)]=getf(k2);
}
int ans=;
for(int i=;i<=T.tot;i++)
if(fa[getf(i)]==i)ans++;
if(ans>)return puts("Impossible"),;
ans=;
for(int i=;i<=T.tot;i++){
if(into[i]&)ans++;
}
if(!ans||ans==)puts("Possible");
else puts("Impossible");
return ;
}
POJ2513_Colored Sticks_KEY的更多相关文章
随机推荐
- 【ES6】最常用的es6特性(二)
1.for of 值遍历 for in 循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值. var someArray = [ &quo ...
- ethereumjs/ethereumjs-vm-4-tests
根据代码发现还要了解的模块有: ethereumjs/merkle-patricia-tree -对应数据存储的数据结构 ethereumjs-blockchain —— 区块链 ethereumjs ...
- ethereumjs/ethereumjs-block-3-tests
之前可以先了解一下另一个模块,看本博客的ethereumjs/ethereumjs-common部分内容 通过tests测试文件能够帮助更好了解API的使用 ethereumjs-block/test ...
- 想要使用 for循环,就要添加 索引器
- IntelliJ IDEA编写的spark程序在远程spark集群上运行
准备工作 需要有三台主机,其中一台主机充当master,另外两台主机分别为slave01,slave02,并且要求三台主机处于同一个局域网下 通过命令:ifconfig 可以查看主机的IP地址,如下图 ...
- URL列表
MySql函数大全:http://www.cnblogs.com/xuyulin/p/5468102.html
- 2018 HNUCM ACM集训队选拔第一场
1.小c的倍数问题 http://acm.hdu.edu.cn/showproblem.php?pid=6108 分析: 比赛的时候真的是各种想,结果发现自己是想多了...数论基础差得一批 求有多少个 ...
- xcode10不兼容问题解决方法,framework编译脚本
XCode10报错:Build/Intermediates.noindex/XCBuildData/build.db": disk I/O error 更改-scheme 为-target ...
- Oracle 存储结构三
Oracle数据库服务器自动管理空间的方法 段空间的分配 空间以区间的形式分配给段,区间是一组连续的Oracle块.每个数据文件都有一个位图,来描述文件中块的状态,块可能是空闲的,也可能是区间中已分配 ...
- 【2008-2009 ICPC NEERC D】Deposits(暴力)
题目链接 题意: 给你n个数a[i],m个数b[i],求出有几对数满足a[i]能整除b[i]. 思路: 直接暴力,先将第一组数存入a数组,第二组数存入b数组,然后在第二组数中遍历它整数倍的数(在10^ ...