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的更多相关文章
随机推荐
- Oracle密码过期the password has expired解决办法
oracle 出现the password has expired这个问题,今天突然发现项目访问不了,一查发现用不了,也登不进去, 这个问题由是Oracle11g密码过期的原因导致的 调试Web项目的 ...
- android中反射技术使用实例
在计算机科学领域.反射是指一类应用,它们能够自描写叙述和自控制.也就是说,这类应用通过採用某种机制来实现对自己行为的描写叙述(self-representation)和监測(examination), ...
- [转]CentOS 7忘记root密码解决办法
转自:http://www.linuxidc.com/Linux/2016-08/134034.htm 亲测可用! CentOS 7 root密码的重置方式和CentOS 6完全不一样,CentOS ...
- 【[APIO2008]免费道路】
\(kruskal\)好题 \(0\)边的数量在某些情况下是可以无限制的调控的,前提是所有必须存在的边都在生成树里了 所以应该分别求出有哪些边是必须在生成树里的,我们可以先从大到小排序,求出有哪些\( ...
- 安装TA-Lib时报错:ubuntu****, Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='
使用pip install TA-Lib 时报错: ERROR: Complete output from command /usr/bin/python3 -u -c 'import setupto ...
- 使用MVVM设计模式构建WPF应用程序
使用MVVM设计模式构建WPF应用程序 本文是翻译大牛Josh Smith的文章,WPF Apps With The Model-View-ViewModel Design Pattern,译者水平有 ...
- python接口自动化读取json,yaml配置文件+封装requests+unittest+HTMLRunner实现全自动化
# coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...
- JBPM学习(四):运行流程实例
概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包含了全部执行阶段,当中最典型的属性就是跟踪当前节点的指针,例如以下图. Exe ...
- mysql数据库锁简介
本篇介绍有关数据库锁相关的知识,关于数据库事务及隔离级别参见<数据库事务ACID特性及隔离级别>这篇文. 乐观锁 乐观锁最常用的实现方式是用数据版本(Version)记录机制.数据版本 ...
- 容易忽略的expect脚本问题,暗藏的僵尸进程,wait命令不要漏掉
问题描述 前几天有个小需求,用到expect脚本去循环的发送一些数据,主要问题代码如下: #! /usr/bin/expect while {true} { set timeout 60 spawn ...