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

python-snap7 报错:can‘t find snap7 library. If installed, try running ldconfig 1、使用场景: Python 读取西门子 S7 系列 PLC 信息,会用到 snap7 库,网上也有很多案例。但是,运行时会报错:can't find snap7 library. If installed, try running ldconfig 2、解决方案: A、下载项目需要依赖的 dll、lib 文件: i、Sourceforge下载:https://sourceforge.net/projects/snap7/files/ ii、优快云下载(免费):https://dow. 阅读详情

这道题涉及的知识点比较多

前面的博客是为这道题打基础

步入正题,题意是说给出一堆木棒,每根木棒的左边和右边颜色不一样,求能否将所有的木棒按规则连成一条直线,规则是相连的木棒端点处颜色必须一致。

如果可以输出Possible

例如题目中给出的例子(后面的序号是我自己加的)

blue red                         1
red violet                       2
cyan blue                        3
blue magenta                     4
magenta cyan                     5

可以按照  4 5 3 1 2的顺序连接起来。

解题思路就是利用并查集,字典树,以及欧拉回路的知识点,

如果不知道并查集可以参照本博客的并查集那篇博客,然后做畅通工程 HDU - 1232这道题练习一下,本博客上也有解题思路,然后了解一下字典树,可以参考一下http://blog.youkuaiyun.com/jiutianhe/article/details/8076835这篇文章,讲的很清楚了,欧拉回路简单了解一下,可以参考这篇博客相关内容的讲解。http://blog.youkuaiyun.com/lyy289065406/article/details/6647445。

然后贴上我的代码

#include<cstdio>
#include<iostream>
#include<cstring>
#define N 2500005*2
using namespace std;
int pre[N];
int indgr[N];
int trie[N][26];
int nodeNum, pr, cnt, oddDgr, root;
int find(int x)
{
    int r=x;
    while(r!=pre[r])//若r的前导点不是它本身
    {
        r=pre[r];//查找
    }

    //路径压缩
    int i=x,j;
    while(i!=r)
    {
        j=pre[i];
        pre[i]=r;
        i=j;
    }
    return r;//返回查找到的根节点
}
//合并
void join(int x,int y)
{
    int rx=find(x),ry=find(y);
    if(rx!=ry)
    {
        pre[rx]=ry;
    }
}
int main()
{
    char color[15];
    int i;
    for(i=0; i<N; ++i)
        pre[i]=i;
    while(~scanf("%s",color))
    {
        cnt++;
        int cur=0,L=strlen(color);
        for(i=0; i<L; ++i)
        {
            int k=color[i]-'a';
            if(!trie[cur][k])
                trie[cur][k]=++nodeNum;
            cur=trie[cur][k];
        }

        ++indgr[cur];
        if(cnt%2)pr=cur;
        else
            join(pr,cur);
    }
    for( i=0; i<=nodeNum; ++i)
    {
        if(indgr[i]%2)++oddDgr;
        if(indgr[i]&&pre[i]==i) ++root;
        if(oddDgr>2||root>1) break;
    }
    if(((oddDgr==0 || oddDgr==2) && root==1) || (oddDgr==0 && root==0))
        printf("Possible\n");
    else
        printf("Impossible\n");
    return 0;
}


PaddleOCR PP-OCRv5实战:5分钟搞定身份证信息提取(附完整代码) 本文详细介绍了如何利用PaddleOCR的PP-OCRv5模型,在5分钟内快速搭建身份证信息提取流程。文章从环境搭建、核心代码实战出发,深入解析了PP-OCRv5针对证件识别的优化特性,并提供了从OCR结果到结构化数据的完整处理方案与避坑指南,帮助开发者高效实现AI驱动的自动化信息提取。 阅读详情

相关推荐

TI DSP从COFF切换到EABI输出格式的5个关键修改点(TMS320F280025实测)

本文基于TMS320F280025实测,详细解析了TI DSP从COFF切换到EABI输出格式的5个关键修改点。核心差异在于EABI遵循ELF标准,涉及链接器优化、RAM数据共享、工具链升级、double数据类型位宽变化及链接器命令文件重构。迁移时需使用.retain指令防止关键数据被优化,利用NOINIT段保护共享RAM,并更新hex2000等工具,以确保BootLoader与应用程序稳定运行。

weixin_29189381的博客 265

poj2513连接木棍(字典树+欧拉回路+并查集)

题目传送门题目大意:给你一堆木棍,每根木管都有两种颜色,相同颜色的部分可以连接起来,问你这堆木棍可不可以连接成1根。思路:大致的思路很好想,就是判断欧拉回路的方法(1.联通,2,要么顶点读书全为偶数,要么有两个奇数),统计每种颜色出现的次数就可以了。问题的关键是怎么统计,大家第一反应肯定是并查集统计联通路,用map统计次数,但这道题的数据量是25w*2,map会超时,然后想到了字典树。我是用数组写...

ysk850874665的博客 291

告别零散脚本:用Playwright+Pytest+Yaml+Allure搭建可维护的UI自动化项目

UI自动化测试是软件质量保障的关键环节,其核心在于模拟用户操作,对Web应用界面进行功能验证。传统的脚本堆砌方式常因代码耦合度高、维护成本大而难以为继。工程化解决方案通过分离关注点,将测试逻辑、数据和配置解耦,从而显著提升项目的可读性、可维护性和可扩展性。其技术价值在于构建可持续运行的自动化资产,而非一次性脚本。典型的应用场景包括Web应用的回归测试、兼容性测试及CI/CD流水线中的质量门禁。本文以Playwright、Pytest、Yaml和Allure为核心技术栈,详细阐述了如何从项目架构、页面对象模型

weixin_42529328的博客 299

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

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

code 1515

tkinter使用label视频播放

tkinter是python的界面开发包 使用tkinter显示视频流的一个办法是使用label来逐帧显示图片。 from Tkinter import * from PIL import ImageTk, Image import cv2 root = Tk() # Create a frame app = Frame(root, bg="white") app.grid() # Create a label in the frame lmian = Label(app) lmain.grid(

六十英里的专栏 5526

CentOS7下OpenVPN Access Server 2.12.0安装与智能分流配置指南

本文详细介绍了在CentOS7系统上安装OpenVPN Access Server 2.12.0并进行智能分流配置的完整指南。从环境准备、核心安装到智能分流策略的深度配置,提供了经过验证的优化方案和故障排查技巧,帮助用户实现高效的VPN网关部署和流量管理。

weixin_30546189的博客 289

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

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

ACM_10000h的专栏 790

ISO26262 功能安全各个阶段测试要求

1. 开发过程说明 系统层面:包括软硬件集成测试、系统集成测试以及整车测试。 硬件层面:包括硬件集成与测试。 软件层面:单元测试、集成测试。 2. 功能安全总体要求 2.1 各项指标 2.2 诊断覆盖度举例 针对一个信号举例说明: 3. 功能安全测试要求 3.1 测试计划 核心内容应包括, 测试对象:需要测试的对象描述,以及测试的范围描...

AgingMoon的博客 1万+

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

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

wuhulala的休息室 1335

CTF-Web习题:2019强网杯 UPLOAD

本题涉及知识点:代码审计、文件上传漏洞、反序列化漏洞

LJW123487的博客 1902

uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录),uni-app开发H5第三方微信授权登录的实现,uniapp如何实现微信授权登录,公众号H5页面接入微信登录流程,uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级

✅ 精选推荐文章 1万+

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

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

Falcon的博客 466

Android 12.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析

在android12.0的系统rom定制化开发中,在系统原生systemui进行自定义下拉状态栏布局的定制的时候,需要在systemui下拉状态栏下滑的时候,根据下滑坐标来 判断当前是滑出通知栏还是滑出控制中心模块,所以就需要根据屏幕宽度,来区分x坐标值为多少是左滑出通知栏或者右滑出控制中心模块,接下来分析下 状态栏下滑坐标等相关功能代码分析

安卓兼职framework和app工程师的博客 2768

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

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

scf0920 1202

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

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

GKHack's Blog 1064

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

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

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

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

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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:23116 Accepted:6095 Description You are given a bunch of wooden...

weixin_30251587的博客 205

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 并查集 + 字典树 + 欧拉回路

把每种颜色看做是图的顶点,然后判定是否满足欧拉回路的条件,用并查集来判断图的各个点是否连通(即是否只用一颗树),用字典树记录颜色编号。 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
上一篇: 畅通工程 HDU - 1232
下一篇: 解决numpy版本太低与opencv版本不匹配的问题 (基于windows)
ices_
博客等级 码龄10年 15粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值