POJ2513-Colored Sticks

/*
思路:类似图论中“一笔画”问题,两根木棒的相连接的端点是一样的颜色,(a,b)--(b,c)--(c, d)....
方法:trie树+并查集, 利用trie树建立字符串和某一个节点的映射,并将这些和字符串构成映射的节点建成图, 用并查集判断图的连通
*/
1 #include<iostream> 2 #include<cstdio>3 #include<cstring>4 #define N 2500005*25 using namespace std;6 int f[N];7 int indgr[N];8 int trie[N][26];9 int nodeNum, pre, cnt, oddDgr, root; 10 int getFather(int x)//并查集寻找父亲节点,压缩路径 11 { 12 return x == f[x] ? x : f[x]=getFather(f[x]); 13 } 14 15 void Union(int a, int b)//并查集的合并 16 { 17 int fa=getFather(a), fb=getFather(b); 18 if(fa!=fb) 19 f[fa]=fb; 20 } 21 22 int main() 23 { 24 char color[15]; 25 int i; 26 for(i=0; i<N; ++i) 27 f[i]=i; 28 while(scanf("%s", color)!=EOF) 29 { 30 cnt++; 31 int cur=0, L=strlen(color); 32 for(i=0; i<L; ++i) 33 { 34 int k=color[i]-'a'; 35     if(!trie[cur][k]) 36 trie[cur][k]=++nodeNum; 37    cur=trie[cur][k]; 38 } 39    ++indgr[cur]; 40 if(cnt%2) pre=cur; 41 else 42     Union(pre, cur); 43  } 44 for(i=0; i<=nodeNum; ++i) 45 { 46 if(indgr[i]&1) ++oddDgr; 47 if(indgr[i] && f[i]==i) ++root; 48 if(oddDgr>2 || root>1) break; 49 } 50 if((oddDgr==0 || oddDgr==2) && root==1 || oddDgr==0 && root==0)//注意空树的情况下是输出Impossible, 开始就是错在了这里 51 printf("Possible\n"); 52 else printf("Impossible\n"); 53 return 0; 54 }

  

转载于:https://www.cnblogs.com/hujunzheng/p/3775673.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php windows共享内存,给PHP开启shmop扩展实现共享内存

这篇文章主要介绍了关于给PHP开启shmop扩展实现共享内存&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下在项目开发中&#xff0c;想要实现PHP多个进程之间共享数据的功能&#xff0c;让客户端连接能够共享一个状态&#xff0c…

导入ansys的实体怎么进行parameter_ANSYS在线缆线束设计中的仿真应用

ANSYS采用ANSYS Maxwell、Q3D、Twin Builder等电磁仿真软件&#xff0c;从线缆线束设计、寄生参数RLCG提取、到系统电磁兼容提供了全面仿真分析。创建模型ANSYS在Maxwell软件基础上提出针对用户定制化的“线缆线束设计工具包”&#xff0c;帮助客户参数化建立特定几何模型&…

怎么做95置信区间图_这种动态的OD图怎么做?简单3步快速搞定

之前在视频号中发过一个单车的出行数据可视化效果。动态展示了某天单车不同时段的运行情况&#xff0c;这种动态的OD可视化效果是如何制作的呢&#xff1f;使用的是kepler.gl进行制作的&#xff0c;其实非常简单&#xff0c;3步即可快速搞定。一、数据软件准备1、软件制作这种动…

php抖音跳转地址,PHP如何实现解析抖音无水印视频

问题来源很多时候你在douyin里看到了一个短视频&#xff0c;想复制下来自己编辑文字来发布&#xff0c;可是视频里的水印却是原者的。这个时候你想把水印去掉&#xff0c;你要如何做呢&#xff1f;这里提供PHP实现去除水印的主要方法&#xff0c;其实很简单。使用方法&#xff…

php 分割二维数组,拆分二维数组 php

把以下数组拆分&#xff1a;{"errcode": 0,"msg": "成功","data": {"list": [{"ticket_no": "1","options": ["周四301","周四302","周四303"],"play_ty…

Dijkstra算法优先队列实现与Bellman_Ford队列实现的理解

1 /*2 Dijkstra算法用优先队列来实现&#xff0c;实现了每一条边最多遍历一次。 要知道&#xff0c;我们从队列头部找到的都是到3 已经"建好树"的最短距离以及该节点编号, 并由该节点去更新 树根 到其他点&#xff08;被更新的节点可以在队列中4 &#xff0c;也可以是…

php times33,PHP Hash算法:Times33算法代码实例

最近看书&#xff0c;里面提到了一些Hash算法。比较有印象的是Times33&#xff0c;当时理解不是很透测&#xff0c;今天写了段程序来验证了一下。先上代码&#xff1a;复制代码 代码如下:/*** CRC32 Hash function* param $str* return int*/function hash32($str){return crc3…

捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...

不知道大家是否注意到&#xff0c;近年来OPPO和vivo的报道越来越少&#xff0c;而华为、荣耀和小米出现的频率越来越高。此外&#xff0c;网络上还有另外一个声音&#xff0c;一个专业的机友朋友说&#xff0c;宁可选择小米、OPPO和vivo&#xff0c;为什么熟悉自己手机的人不考…

php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析

这篇文章主要介绍了ThinkPHP打水印及设置水印位置的方法,结合实例形式分析了thinkPHP打印与设置水印的相关操作步骤与具体实现技巧,需要的朋友可以参考下本文实例讲述了ThinkPHP打水印及设置水印位置的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;最近在用Thin…

华为交换机命令_华为交换机常用命令

华为交换机常用命令&#xff1a;1、display current-configuration 显示当前配置2、display interface GigabitEthernet 1/1/4 显示接口信息3、display packet-filter interface GigabitEthernet 1/1/4 显示接口acl应用信息4、display acl all 显示所有acl设置 3900系列交换机5…

java中两种添加监听器的策略

/*第一种&#xff1a;将事件的处理委托给其他对象&#xff0c;下面的例子是委托给了MyListener&#xff08;implements ActionListener&#xff09;*/ 1 import java.applet.Applet;2 import java.awt.event.*;3 import java.awt.*;4 public class ChangeColor extends Applet{…

php dos命令用不了,windows下如何使用DOS命令强制复制文件

有的时候&#xff0c;我们可能需要替换某些目录下的一些文件&#xff0c;手动去一个个目录找的话&#xff0c;就会比较麻烦&#xff0c;这时候&#xff0c;就是我们程序员上场的时候了&#xff0c;程序虽然好写&#xff0c;但是dos命令并不是每个人都玩的转的&#xff0c;而且最…

java的栈图形演示

1 import java.awt.*;2 import javax.swing.*;3 import java.awt.event.*;4 /*5 指示发生了组件定义的动作的语义事件。当特定于组件的动作&#xff08;比如被按下&#xff09;发生时&#xff0c;由组件&#xff08;比如 Button&#xff09;生成此高级别事件。6 事件被传递给每…

python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法

Python opencv 读取视频的三种情况&#xff1a;情况一&#xff1a;通过摄像头采集视频情况二&#xff1a;通过本地视频文件获取视频情况三&#xff1a;通过摄像头录制视频&#xff0c;再读取录制的视频摄像头采集、本地视频文件的读取、写视频文件&#xff0c;网上都有代码。我…

kali里PHP文件502错误,解决Linux Kali iptables开放22端口失败等一系列问题

这篇文章是针对2020年下载安装的kali系统碰到的关于 iptables开放22端口失败等一系列问题的解决办法&#xff0c;如果是其它系统&#xff0c;可以借鉴一下思路。各种报错&#xff1a;# sudo systemctl start iptablesFailed to start iptables.service: Unit iptables.service …

中缀试转后缀试及前缀试并计算其结果

1 /*2 参考大神nb的代码&#xff0c;感觉思路不错&#xff01;终于搞明白了&#xff01;一开始不明白在计算表达式的时候&#xff0c;利用栈到底做了什么&#xff01;现在感觉我们利用栈就是模拟我们书面上计算表达式&#xff0c;3 将优先级高的运算先计算出来&…

ros如何编译python文件_Python为ROS编写一个简单的发布者和订阅者

Python为ROS编写一个简单的发布者和订阅者1.创建工作空间1.1建立文件夹hello_rospy,再在该目录下建立子目录src,并创建工作空间mkdir -p ~/hello_rospy/srccd ~/hello_rospy/srccatkin_init_workspace1.2 编译cd ~/hello_rospy/catkin_make1.3设置运行环境echo "source ~/…

php整站防注入程序,php通用防注入程序 推荐

function jk1986_checksql(){$bad_str "and|select|update|‘|delete|insert|*";$bad_Array explode("|",$bad_str);/** 过滤Get参数 **/foreach ($bad_Array as $bad_a){foreach ($_GET as $g){if (substr_count(strtolower($g),$bad_a) > 0){echo &…

表达式建树

//用数组实现树 1 #include<iostream> 2 #include<ctype.h>3 #include<cstring>4 #define N 100005 #define optd 16 #define optr 27 using namespace std;8 int treeL[N], treeR[N];9 class node 10 { 11 public: 12 int flag;//区分当前节点是操作符还…

python label标签的作用_label标签的作用是什么?

label标签的作用是为鼠标用户改进了可用性&#xff0c;当用户点击【】标签中的文本时&#xff0c;浏览器就会自动将焦点转到和该标签相关联的控件上。label标签的作用&#xff1a;一、标签定义及用法在html中&#xff0c;标签通常和标签一起使用&#xff0c;标签为input元素定义…