POJ2513 Colored Sticks(字典树+并查集+欧拉回路)

Redhawk解析PAD / IOPAD的实现方法 Redhawk解析IOPAD的实现方法1. IOPAD DEF的概念说明2. 生成 IOPAD GDS文件3. 生成 IOPAD DEF文件4. Redhawk解析过程中读取IOPAD DEF 本文主要简述【Redhawk解析IOPAD】的实现原理方法,具体脚本没有放在这里。 1. IOPAD DEF的概念说明 2. 生成 IOPAD GDS文件 注: getinfo2IODEF.tcl 是基于innovus获取IOPAD的摆放信息以及库信息。 run_cerate_iopadgds.csh 是基于c 阅读详情

Colored Sticks
Time Limit: 5000MS Memory Limit: 128000K
Total Submissions: 33185 Accepted: 8729

Description

You are given a bunch of wooden sticks. Each endpoint of each stick is colored with some color. Is it possible to align the sticks in a straight line such that the colors of the endpoints that touch are of the same color?

Input

Input is a sequence of lines, each line contains two words, separated by spaces, giving the colors of the endpoints of one stick. A word is a sequence of lowercase letters no longer than 10 characters. There is no more than 250000 sticks.

Output

If the sticks can be aligned in the desired way, output a single line saying Possible, otherwise output Impossible.

Sample Input

blue red
red violet
cyan blue
blue magenta
magenta cyan

Sample Output

Possible

Hint

Huge input,scanf is recommended.



问你字符串能不能欧拉回路。简单明了的题用到了三个知识点。。


首先要考虑的是数据范围,给出的范围过大用字典树hash为int,而后判断是不是欧拉回路(图连通且结点的度均为偶数或有两个奇数度

的点)。


AC代码:


#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
const int MAXN = 5e5 + 5;
int par[MAXN], deg[MAXN], ran[MAXN], n = 1;
struct node
{
	/* data */
	int id;
	bool vis;
	node *next[30];
	node() {
		id = 0;
		vis = false;
		for(int i = 0; i < 27; ++i)
			next[i] = NULL;
	}
}*root;
int hashint(char *s)
{
	node *p = root;
	int k;
	while(*s != 0) {
		k = *s - 'a';
		if(p -> next[k] == NULL) p -> next[k] = new node();
		p = p -> next[k];
		s++;
	} 
	if(!p -> vis) {
		p -> id = n;
		n++;
		p -> vis = true;
		return p -> id;
	}
	else return p -> id;
}
int find(int x)
{
	if(x == par[x]) return x;
	return par[x] = find(par[x]);
}
void merge(int x, int y)
{
	if(ran[x] < ran[y]) par[x] = y;
	else {
		par[y] = x;
		if(ran[x] == ran[y]) x++;
	}
}
int main(int argc, char const *argv[])
{
	char a[15], b[15];
	root = new node();
	for(int i = 1; i < MAXN; ++i)
		par[i] = i;
	while(scanf("%s%s", a, b) != EOF) {
		int x = hashint(a), y = hashint(b);
		deg[x]++, deg[y]++;
		int fx = find(x), fy = find(y);
		if(fx != fy) merge(fx, fy);
	}
	int tmp = find(1), num = 0;
	for(int i = 1; i < n; ++i) {
		if(find(i) != tmp) {
			printf("Impossible\n");
			return 0;
		}
		if(deg[i] % 2) num++;
		if(num > 2) {
			printf("Impossible\n");
			return 0;
		}
	}
	if(num == 1) printf("Impossible\n");
	else printf("Possible\n");
	return 0;
}


【QT开发】web开发,内嵌网页展示和交互工具QWebEngineView类详解及实战应用 QWebEngineView 类为 Qt 应用提供了强大的网页展示和交互能力。通过合理运用其方法、属性和事件,能够创建出功能丰富、用户体验良好的网页浏览界面。在开发过程中,要注意处理常见问题,以确保网页的正常展示和交互效果。 阅读详情

相关推荐

卫星通信链路预算实战:从EIRP到Eb/N0的完整计算指南(含Excel模板)

本文提供了一份卫星通信链路预算的实战指南,详细解析了从EIRP到Eb/N0的完整计算流程。文章重点对比了C波段与Ku波段在应对降雨衰减等动态因素时的不同策略,并分享了包含核心公式的Excel模板,帮助工程师将理论转化为可执行的系统设计依据。

weixin_29230773的博客 534

POJ 2513 Colored Sticks(欧拉回路判断+字典树Trie+并查集)

POJ 2513 Colored Sticks(欧拉回路判断+字典树Trie+并查集) http://poj.org/problem?id=2513 题意:给你多个木棍,每个木棍两段涂上颜色,两根木棍只有在相同颜色的一端才能连接,问你能不能使所有木棍都连接成一条直线路. 分析: 将输入的每个颜色看出是图的一个点,然后每条木棍正好是连接了两种颜色的一条边,我们只需要判断这个图中是否存在欧拉道

code 1515

CTP接口入门

该文章主要讲什么 这篇文章的面向对象是有一些C++基础,并且想用C++来做程式化交易的同学。 这篇文章可以算是我的程式化学习笔记中的一篇。其中介绍了CTP的简单的使用方式,并且附上了一些代码以及我在试用的时候遇到的一些小坑。 什么是CTP CTP是上海期货推出的一套可供程序调用的交易接口。就好比官方给程序化交易提供了的一个专门的业务窗口。 接口相关文件下载 CTP接口可以在上期...

weizehua的专栏 4万+

Colored Sticks POJ - 2513 并查集,字典树,欧拉回路

这道题涉及的知识点比较多 前面的博客是为这道题打基础 步入正题,题意是说给出一堆木棒,每根木棒的左边和右边颜色不一样,求能否将所有的木棒按规则连成一条直线,规则是相连的木棒端点处颜色必须一致。 如果可以输出Possible 例如题目中给出的例子(后面的序号是我自己加的) blue red 1 red violet

ices_的博客 485

[CTFSHOW]JWT

文章目录前言JWT简介CTFSHOW Web345CTFSHOW Web346前置知识开始做题CTFSHOW Web347CTFSHOW Web348CTFSHOW Web349CTFSHOW Web350前置知识利用WP如何防御 前言 有些师傅向我咨询WP,索性就发了吧,其实早就写好了,只是懒,在github仓库里囤着 JWT简介 可以看看我的Github总结给自己看的,Y4tacker CTFSHOW Web345 首先打开题目,查看源码,接下来访问/admin被跳转回主页啥也没有发生 where is

Y4tacker的博客 6045

[软考]系统架构设计师 备考经验分享(一) - 备考计划篇

前言 上周末刚刚结束了软考架构师的考试,自我感觉考的还可以,大概率是过了。 两次参加软考,一次中级嵌入式,一次高级架构师,都是备考不到两个月时间,尤其是架构师这次考试内容和本职工作有不小的差别,并且需要同时备考三个科目,在高强度地备考中感觉是摸索出到了一点软考的技巧与经验。 打算趁还记得,赶紧写几篇文章做下梳理总结,算是给将来自己考系分、高项或者其他考试做个记录,也希望能够帮到正在备考的大家。 先把第一步,个人的备考计划分享给大家。 自身情况分析 首先,请大家一定先明确三个问题,这三个问题会直接影响到你的

_ 6404

连单词成欧拉路 欧拉回路+字典树+并查集 POJ 2513 Colored Sticks

http://poj.org/problem?id=2513 题意: 给你很多对单词,单词相当于一个点,一对单词相当于一条边,问这么多对的单词能否组成一条欧拉路,要求每条边都要经过。 解析: 题目数据很大,每个单词最多10个字母,据说用map映射会TLE。  所有要改用字典树进行hash。  判断欧拉路径或者回路需要满足两个条件。  图上所有点联通  度数为奇数个的节点

ACM_10000h的专栏 790

【OpenClaw从入门到精通】第04篇:Web/TUI/钉钉全打通!OpenClaw多端交互实测指南(2026避坑版)

本文详解OpenClaw三大交互方式(Web控制台、TUI终端、钉钉集成),解决新手多端操作难题。Web控制台适合可视化深度配置,TUI终端满足服务器高效运维,钉钉集成实现移动办公协同。提供2026实测配置步骤、代码示例及避坑指南,涵盖设备配对、终端命令优化、聊天机器人回调验证等核心场景,助用户快速掌握"随时召唤AI助理"的全链路方案。 关键词 OpenClaw、多端交互、Web控制台、TUI终端、钉钉集成、AI助理、实操指南 核心亮点 全链路打通:覆盖Web/TIM/IM三端配置

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 3543

poj 2513 Colored Sticks 欧拉回路(字典树 +并查集)

此题中涉及三个小算法,这是一个无向图判断欧拉回路, 无向图存在欧拉回路的充要条件 一个无向图存在欧拉回路,当且仅当该图只存在0或2个奇数度数的顶点,且该图是连通图。 有向图存在欧拉回路的充要条件 一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图。 判断度数很简单,当时没想明白怎么判断图示连通的,其实只要判断他们的父节点的个数,只要只有一个父节点,那么此图是

wuhulala的休息室 1335

基于simulink的预测电流控制策略的三相逆变器仿真

本文详细介绍了在Simulink中实现基于预测电流控制策略的三相逆变器仿真方法。主要内容包括:准备工作(安装必要软件及工具箱)、构建三相逆变器基础模型、设计预测电流控制器(包含状态空间建模和控制器设计)、实现控制逻辑、添加示波器观察输出、配置仿真参数以及运行仿真分析结果。通过MATLAB代码示例和Simulink模块说明,展示了如何选择最优开关状态来最小化电流误差。该仿真方法为研究快速响应、高精度的逆变器控制提供了实用工具,但需注意实际应用中可能需要的调试工作。

amy_mhd的博客 274

一文搞定离线环境下的RAG引擎部署

在人工智能浪潮下,技术已成为构建智能问答、文档分析和代码助手等应用的核心。然而,在许多企业场景中,出于数据安全和性能的考虑,服务器往往部署在中,并要求极致的推理效率。这给依赖外部资源的应用部署带来了巨大挑战。如何在这种严苛的环境下,完整、可靠地部署一套包含向量数据库、**高性能推理服务(vLLM)**和Python后台的复杂RAG系统呢?本文将为你提供一个,手把手教你如何使用 Docker 技术,将一套基于 Weaviate 和的 Python RAG 应用完整打包,并在离线环境中一键部署。

木鱼时刻的专栏 1242

POJ - 2513 Colored Sticks(字典树+并查集+欧拉回路)

题目链接:点击查看 题目大意:给出n个木棍,问若两两相连,最终能否构成一根长直木棍,相连的规则是两个木棍的相接端点的颜色需要保持相同 题目分析:关于这个题目,我们可以将每个木棍视为一条边,每个木棍的两个端点视为两个顶点,问能否相连,我们可以联想到欧拉回路,也就是说必须满足下面的两个条件: 所有的顶点能够构成回路 所有度数为奇数的顶点只能有零个或两个 如此一来题目就简单多了,但还是存在许多细...

Falcon的博客 466

ABAP 后台作业里的消息机制:把 MESSAGE 写对,避免作业莫名取消

SAP后台作业消息处理机制解析 本文深入剖析了SAP系统中后台作业的消息处理机制,揭示了前台与后台执行环境的关键差异。核心发现包括: 后台作业对消息的处理规则: 所有消息写入Job log而不显示 根据消息类型决定是否继续执行 W警告在列表处理阶段会被自动转为E错误 关键异常处理: 通过error_message可捕获E/A类型消息 A类型消息会触发隐式数据库回滚 未被捕获的E/A消息将导致作业中断 实用解决方案: 将业务提示改为S或I类型 使用DISPLAY LIKE保持前台体验 通过error_mess

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2216

POJ 2513 Colored Sticks(字典树+并查集连通性+欧拉回路)

题目地址:POJ 2513 刚开始没想到字典树,用的map函数一直TLE,由于上一次的签到题由于没想到字典树而卡了好长时间的深刻教训,于是过了不久就想起来用字典树了,(为什么是在TLE了5次之后。。T^T)是在然后把map改成了字典树,然后就过了。 这题居然不知不觉的用上了欧拉回路。。其实当时我是这样想的。。因为相互接触的必须要相同,所以除了两端外,其他的都是两两相同的,所以除了两端的颜色外其

scf0920 1202

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ 2513 Colored sticks(字典树 + 欧拉回路 + 并查集)

解题思路: 题目意思很简单,就是判断能否形成欧拉回路,用并查集判断是否连通,然后统计一下每个节点的度数即可。不过因为输入的是字符串,需要对字符串重新编号,用map会导致超时,因此采用字典树。 #include #include #include #include #include #include #include using namespace std; const int M

蘑菇--走在通往梦想的道路上。 542

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

poj 2513 Colored Sticks (字典树,并查集,欧拉回路)

N根木棍,两头都有颜色,拼接的时候,必须将颜色一致的接在一起,问能否把全部木棍拼成一整根? 1.颜色映射到数字 map效率低,超时。因此用字典树。 2.判断能否形成通路 条件:所有点的度数都是偶数,或者只有两个点的度数是奇数 (dad是并查集的数组,判断是否全部连通) for(int i=0;i<color;i++) { if(dad[i]==-1) dadcnt++;

JasonWu的博客 239

POJ 2513 Colored Sticks(欧拉回路+字典树+并查集)

题意: 给你很多对单词,单词相当于一个点,一对单词相当于一条边,问这么多对的单词能否组成一条欧拉路,要求每条边都要经过。 解析: 题目数据很大,每个单词最多10个字母,据说用map映射会TLE。 所有要改用字典树进行hash。 判断欧拉路径或者回路需要满足两个条件。 图上所有点联通 度数为奇数个的节点只有0个或者2个。 具体做法: 判断连通性就用并查集,判断是否只

小G的ACM之路 700

POJ 2513 Colored Sticks (欧拉回路 + 字典树 +并查集)

Colored Sticks Time Limit: 5000MS   Memory Limit: 128000K Total Submissions: 27097   Accepted: 7175 Description You are given a bunch of wooden sticks. Each endpoin...

weixin_34138521的博客 118

POJ 2513 Colored Sticks(字典树 + 并查集 + 欧拉回路)

Colored Sticks Time Limit:5000MS Memory Limit:128000K Total Submissions:23116 Accepted:6095 Description You are given a bunch of wooden...

weixin_30251587的博客 205

POJ 2513 Colored Sticks 并查集 + 字典树 + 欧拉回路

把每种颜色看做是图的顶点,然后判定是否满足欧拉回路的条件,用并查集来判断图的各个点是否连通(即是否只用一颗树),用字典树记录颜色编号。 1.字典树: 本题数据比较大,有50W种颜色,如果用STL的map来记录颜色或人工处理的话都会超时(平均O(n/2));所以我们用字典树来记录颜色的编号(平均O(lgn)),大大节约了时间。 2.欧拉回路判定: 本题显然是单向图,用d[]数组来统计每种颜色

Nicolas 1043

POJ 2513 Colored Sticks(字典树,并查集,欧拉回路)

题目大意: 有很多根木棒,木棒两头各有颜色,问能不能将木棒首位相连。使得连接的地方颜色相同。 思路分析: 简单的欧拉回路的判断,用并查集判断联通性。 如果允许的话也可以用map做,但是会超时。 所以用字典树判断单词出现的位置。 坑点是会有木棒数量为0 的情况 #include #include #include #include #pragma com

Jinx Jinx again 1079

poj 2513 Colored Sticks (字典树+并查集+无向图的欧拉回路。)

题目链接:http://poj.org/problem?id=2513 题目大意就是:给你一些棍子,每根棍子两端涂着颜色,颜色相同的两端可以连在一起,问所有棍子可不可以连在一起。 类似于hdu的1116(链接:http://acm.hdu.edu.cn/showproblem.php?pid=1116),差别是1116看的是字母,这看的是单词,这要麻烦些,而且1116是有向图,这是无向

qqspeed 841

POJ 2513 Colored Sticks (欧拉回路 + 并查集 + 字典树)

题目链接:http://poj.org/problem?id=2513 题意:有n段木头,每段木头的两端都有颜色。相同颜色的木头能拼接在一起成为一段。问是否能把所有木头拼接在一起。成为一段。 题解:这道题,和刘汝佳的紫书上的一道题欧拉回路的题目很像,据说这道题map映射会超时,所以映射就用字典树来代替。那么这道题的思路就可以变成,每个木头分成两段,然后每个端点的颜色hash成一个点。连接之后判...

PK__PK的博客 292

poj-2513-Colored Sticks-字典树trie / hash +并查集 欧拉回路

..........一看到题。。试着用hash水一下。。wa 用map水一下TLE。。 好吧。。trie试一下。。。wa .wa .wa..... 好吧。。最后发现是自己傻逼了。。。         窝一开始犯了傻逼错误,以为 直接 计算颜色出现的种数。。。奇数个数的颜色为0或2 就 合法。。然而这只是必要条件.....不是充分条件...........

缺氧 516

poj2513 Colored Sticks —— 字典树 + 并查集 + 欧拉回路

题目链接:http://poj.org/problem?id=2513 题解:通过这题了解了字典树。用字典树存储颜色,并给颜色编上序号。这题为典型的欧拉回路问题:将每种颜色当成一个点。首先通过并查集判断是否为连通图,再检验是否符合欧拉回路的特点。不过题目有一点很奇怪,在并查集中,若图为连通,不是有且仅有一个点的fa[]等于它自己吗,即类似于根节点?为什么会出现有0个的情况,这一...

weixin_30407099的博客 94

POJ 2513 Colored Sticks——字典树+并查集+欧拉回路

比较综合的一道题,套用字典树以及并查集模板。 注意: 1.字典树应该有提供单词编号的功能,这也是解题必须的要素 2.输入为空返回0,这个跟写法有关,我的写法不用特殊判断 3注意各种细节,本题综合性较强,代码量较大,稍不留神就会出现细节错误,注意及时调试 #include #include #include #include #include #define ID(x) x -

hao_zong_yin的博客 506
上一篇: POJ2230 Watchcow(欧拉回路 + dfs)
下一篇: POJ2337 Catenyms(欧拉回路+dfs)
GKHack
博客等级 码龄11年 48粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值