POJ2513 欧拉图

POJ2513-Colored Sticks【TrieTree+MergeSet+EulerPath】 北大POJ2513-Colored Sticks【TrieTree+MergeSet+EulerPath】 解题报告+AC代码 立即下载

并查集Union-Set: 使用rank数组

Trie树

欧拉图

注意:使用map容器会超时

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define M 500005

int pre[M];
int rank[M];
int deg[M];
int N;
struct trie
{
	int color;
	trie *next[26];
	trie()
	{
		color=0;
		memset(next,0,sizeof(next));
	}
}*root;

int insert(trie *p,char str[])
{
	int i;
	for(i=0;str[i]!='\0';i++)
	{
		int s=str[i]-'a';
		if(p->next[s]==NULL)
		{
			p->next[s]=new trie;
		}
		p=p->next[s];

		if(str[i+1]=='\0')
		{
			if(p->color==0)
			{
				p->color=++N;
			}
			deg[p->color]++;
			return p->color;
		}
	}
	return 0;
}

void init()
{
	int i;
	for(i=1;i<M;i++)
	{
		pre[i]=i;
		rank[i]=0;
	}
}

int find(int x)
{
	if(x!=pre[x])
	{
		pre[x]=find(pre[x]);
	}
	return pre[x];
}

bool isConnected()
{
	int i;
	for(i=2;i<=N;i++)
	{
		if(find(i)!=find(i-1))
		{
			return false;
		}
	}
	return true;
}

void unionOp(int x,int y)
{
	if(rank[x]<rank[y])
	{
		pre[x]=pre[y];
	}
	else if(rank[x]>rank[y])
	{
		pre[y]=pre[x];
	}
	else
	{
		pre[y]=pre[x];
		rank[x]++;
	}
}

bool cal()
{
	int oddDeg=0;
	if(!isConnected())
	{
		return false;
	}

	int i;
	for(i=1;i<=N;i++)
	{
		if(deg[i]%2!=0)
		{
			oddDeg++;
		}
		if(oddDeg>2)
		{
			return false;
		}
	}

	return true;
}

void read()
{
	char c1[11],c2[11];
	int x,y;
	N=0;
	root=new trie;
	memset(deg,0,sizeof(deg));

	init();
	while(~scanf("%s%s",c1,c2))
	{
		x=insert(root,c1);
		y=insert(root,c2);
		unionOp(x,y);
	}
}

int main()
{
	read();
	if(cal())
	{
		printf("Possible\n");
	}
	else
	{
		printf("Impossible\n");
	}

	return 0;
}


手把手教你学Simulink--基于储能系统的建模与仿真场景:-锂电池储能系统充放电管理策略仿真 《锂电池储能系统充放电管理的Simulink建模与仿真》摘要 本文详细介绍了使用Simulink+SimscapeElectrical对锂电池储能系统进行充放电管理策略建模的全过程。从系统结构设计入手,重点阐述了锂电池模型、充放电控制器、热管理系统等核心模块的搭建方法,并提供了完整的仿真流程。文章详细说明了如何实现荷电状态管理、温度控制和功率限制等关键策略,通过仿真分析了电池电压、电流、SoC和温度等关键指标的变化规律。最后提出了基于仿真结果的优化建议,包括参数整定、算法改进等方面,为锂电池储能系统的安全高 阅读详情

相关推荐

RustDesk网页端远程控制实战:如何用Web Client替代传统客户端(附安全配置建议)

本文详细介绍了RustDesk网页端远程控制的实战应用,包括其核心优势、配置流程及安全加固方案。通过Web Client替代传统客户端,用户可实现跨平台无缝体验和企业级管理效率,特别适合临时协作和移动设备使用。文章还提供了JWT身份验证、LDAP集成等安全配置建议,确保网页端访问的安全性。

weixin_30836759的博客 254

poj2513-字典树-欧拉路径

题目链接:http://poj.org/problem?id=2513 题目大意:给一些木棍,两端都有颜色,只有两根对应的端点颜色相同才能相接,问能不能把它们接成一根木棍 无向图存在欧拉路的充要条件为: ① 图是连通的; ② 所有节点的度为偶数,或者有且只有两个度为奇数的节点。 图的连通可以利用并查集去判断。 这题数据比较坑,输入空数据的时候,输出possible。 数...

qmi_q米的博客 235

unity中判断是否联网,判断网络状态的两种方式

unity中判断是否联网,判断网络状态的两种方式

wla2996gpy032的博客 1878

【POJ No. 2513】 彩色的木棒 Colored Sticks

【POJ No. 2513】 彩色的木棒 Colored Sticks

代码改变世界 308

汇川伺服Modbus-RTU通讯实战:从帧结构解析到西门子PLC配置

本文详细解析了汇川伺服与西门子PLC通过Modbus-RTU协议进行通讯的实战步骤,包括帧结构解析、硬件连接、参数设置及PLC程序配置。通过具体案例和常见问题排查指南,帮助工程师快速掌握工业自动化中的通讯技术,提升设备调试效率。

weixin_33670713的博客 456

FANUC机器人电弧跟踪功能深度解析:从电流采样原理到ROBOGUIDE仿真避坑指南

本文深度解析FANUC机器人电弧跟踪技术,从电流采样原理到ROBOGUIDE仿真避坑指南,详细介绍了电流波形分析、实时补偿机制及现场调试技巧。针对工业焊接中的常见问题,提供从底层原理到高阶应用的解决方案,帮助工程师优化自动化焊接质量。

weixin_31785177的博客 553

poj2513 Colored Sticks

大致题意: 给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的。 解题思路: 可以用图论中欧拉路的知识来解这道题,首先可以把木棒两端看成节点,把木棒看成边,这样相同的颜色就是同一个节点 问题便转化为: 给定一个图,是否存在“一笔画”经过涂中每一点,以及经过每一边一次。 这样就是求图中是否存在欧拉

Rainto的专栏 588

抄表程序员的DLMS/COSEM协议实战:从抓包到解析,手把手教你读懂IEC62056报文

本文深入解析DLMS/COSEM协议在智能电表通信中的应用,从报文捕获到数据解析的全流程实战指南。涵盖HDLC帧解析、应用层连接建立、数据请求/响应解码等核心内容,并提供Wireshark配置、OBIS代码速查表等实用工具,帮助开发者快速掌握IEC62056标准下的电能表通信技术。

weixin_29178069的博客 302

POJ2513(欧拉路_trie树_并查集)

参考博客:https://blog.youkuaiyun.com/lyy289065406/article/details/6647445 大致题意: 给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的 解题思路: 相同的颜色看作一个结点,木棒看作边,是否可以“一笔画”经过图中每个点,以及经过每条边一次。 无向图中存在欧拉路充要条件: 图...

weixin_39799208的博客 352

DSP复习笔记(5)——外部接口模块XINTF

【注意】 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章 5. 本章内容较多而且较为重要,请结合PPT一起复习

BerenCamlost的博客 1万+

SpringBoot实现快速导入EXCEL

MaterialMonitorController.java @Log(title = "物料监测", businessType = BusinessType.IMPORT) @RequiresPermissions("system:materialMonitor:import") @PostMapping("/importData") @ResponseBody ...

LEN程序员的一生 4817

POJ 2513-Colored Sticks (字典树)

题目链接:http://poj.org/problem?id=2513 题意:给你n个木棒,每个木棒两端各有一种颜色,两个木棒能连在一起当且仅当两个木棒有相同的一种颜色,问你这n个木棒能否连在一起。。 题解:首先需要判断能否构成欧拉回路,判断的方法很简单,判断每个木棒两端的的颜色出现多少次即可,假如有出现颜色的度为奇数次的话,只能出现两个,否则必不能构成欧拉回路,剩下的就是给每种颜色一个编号即

信仰.的博客 403

C# 上位机之海康工业相机开发(SDK)实战教程

海康工业相机的C#开发核心是基于MVS SDK的“初始化→枚举→连接→采集→释放”流程,其中图像回调处理和格式转换是关键。严格按照SDK文档处理设备类型(网口/USB)和像素格式;及时释放图像资源,避免内存泄漏;错误码是排查问题的重要依据(可参考SDK中的“错误码说明”文档)。掌握这些基础后,可结合机器视觉算法(如OpenCV)实现缺陷检测、尺寸测量等高级功能,构建完整的工业视觉系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3842

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

POJ - 2513 Colored Sticks (字典树 + 并查集 + 欧拉图) 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 t...

weixin_43179892的博客 255

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

poj2513 Colored Sticks【欧拉图】

题目链接:http://poj.org/problem?id=2513 题意:由若干根木棍,每根木棍的两头都有不同的颜色,只有颜色相同,两根木棍才能连在一起,问你能否把所有木棍都连在一起 解析:其实就是判断无向图中是否有欧拉道路,由于木棍可能有3e5那么大,所以用map来转换是会超时的,更好的办法是采用字典树,本题还有一个坑点就是有可能一根木棍都没有#include <iostream> #in

22h's Blog 333

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

POJ 2513 Colored Sticks

题目链接: http://poj.org/problem?id=2513 题目大意: 有一些木棍,木棍两端有不同的颜色; 两个木棍能够排列到一块,当且仅当两个木棍相邻端点颜色一样; 问这些木棍能否全部链接到一块; 解题思路: 首先,可以将每一个颜色,看做是一个点; 木棍就可以看做为两个颜色之间的一条边; 然后就可以组成一个图; 问这个图是否是一个欧拉图; 对于每一个颜色,可以用...

den11551的博客 165

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ 2513 字典树

POJ 2513 字典树题意:题目给你了一些木棒,这些木棒前后有颜色,现在问你可不可能将这些接起来按照木棒的颜色来连接。题目的木棒数量是25w。思路:我们将这些木棒的端点看成图里面的端点,木棒本身作为图的边,那么这时候这道题就转化成求这些木棒(边)组成的图里面是否有存在欧拉图。欧拉图:通过图中的所有边并且只通过一次的通路为欧拉图,图为有向图或无向图。那么无向图是欧拉图的充要条件是: 图是连通的 图中

AShallWe的博客 496

POJ2513 字典树 并查集 欧拉图

通过trie获得该颜色的id 用并查集连接两个点,并且记录两个点的度 欧拉图:奇度定点为0或2个,并且连通 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxm=1e7+500; int tot,col,trie[maxm][30],mark[maxm]; int deg[maxm],fa[maxm],res; char c1[30.

myvanilla1的博客 165

poj 2513 并查集+trie,欧拉图

<br />把一根棍子的两个点看成图中的两个点,棍子看成边,给出一根棍子,相当于在图中的两个之间连一条边。最后按题意来,相当于是判断最后的图是否为欧拉图。方法就是这样。但是实际做的过程中,不必真的去建图。判断欧拉图有两个条件,1,连图,2,图中奇数度点小于等于2. 所以直接用并查集。<br /> <br />#include<iostream> #define N 500005 using namespace std; struct Node{ int n; Node*next[2

notsmarty 525

POJ2513 欧拉图入门

题目大意: 给定一系列sticks,每个木棒的两端都涂有颜色,判断是否能够找到将所有的木棒连接起来的方法,使相互连接的木棒的两端的颜色是相同的? 现在要解决的问题是找到一条路径,遍历图的每条边一次,即欧拉路问题 要存在欧拉路就要满足: 1.该图必须是一个连通图 2.该图每个点的度数要么全为偶数,要么有且仅有两个点的度数为奇数   在实际编程过程中,使用map提交时超时,最后只好选择T

yc5-yc的博客 759

【Trie树+并查集+欧拉图】Colored Sticks (POJ - 2513)

Colored Sticks POJ - 2513 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 th...

NaNa 270

【ICPC-73】poj 2513 Colored Sticks

点击打开链接poj2513 思路: hash+并查集+欧拉路 分析: 1 题目要求给定n个木棒是否可以组成一个满足要求的字符串 2 很明显的判断无向图是否是半欧拉图,首先先判断是否是单连通这一点可以利用并查集,然后在去判断是不是最多两个点的度数为奇数 3 最后一个问题就是怎么把字符串映射成整数,如果利用map肯定是超时的,那么这里就要用到hash,由于这题的数据比较弱我没有处理冲突也过了 代码:...

藏经阁 | 玄苦 1111

poj 2513 Colored Sticks trie树+欧拉图+并查集

点击打开链接 Colored Sticks Time Limit: 5000MS   Memory Limit: 128000K Total Submissions: 27955   Accepted: 7403 Description You are given a bunch of wooden sticks. Each

云淡风清 851

poj 2513 Colored Sticks

点击打开链接poj2513 思路: hash+并查集+欧拉路 分析: 1 题目要求给定n个木棒是否可以组成一个满足要求的字符串 2 很明显的判断无向图是否是半欧拉图,首先先判断是否是单连通这一点可以利用并查集,然后在去判断是不是最多两个点的度数为奇数 3 最后一个问题就是怎么把字符串映射成整数,如果利用map肯定是超时的,那么这里就要用到hash,由于这题的数据比较弱我没有处理冲突也过了...

我是传奇 196

poj2513 欧拉图+字典树

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 a...

qq_40859951的博客 216

poj 2513 Colored Sticks(trie树 + 并查集 + 欧拉图)

很好的一道题,用到了欧拉图的定义。呃,说实话,大一学的那点关于欧拉图的知识忘得都差不多了,虽然还记得欧拉图,但根本不知道怎么用,怎么判断,记得有次比赛有道题和它很像,当时根本不知道要用什么知识来解决,只是简单的假设着,今天读到这题时,直觉上觉得应该简单的方法,训练计划又提示用trie树,所以认真的推了一个结论,只有当每种颜色的数目都为偶数,或者只有两种颜色的数目为奇数其他的都为偶数时才能...

B218707的博客 193
上一篇: POJ 2299 归并排序
下一篇: POJ3252
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值