Uva 10129 Play on Words(欧拉道路)

图论(回路矩阵,欧拉道路,最佳匹配) 本资源对于图论的基本概念,回路矩阵,最佳匹配等方面知识做了详尽描述,希望对学习的朋友有所帮助! 立即下载

题目连接:Uva 10129  Play on Words

判断有向图是否有欧拉路:(水果君の日常)

1.判断有向图的基图(即有向图转化为无向图)连通性,用简单的DFS即可。如果图都不连通,一定不存在欧拉路(所谓的连通是忽略边的方向之后的连通,所以才可以使用并查集)。
2.在条件1的基础上
对于欧拉回路,要求苛刻一点,所有点的入度都要等于出度,那么就存在欧拉回路了
对于欧拉道路,要求松一点,只有一个点,出度比入度大1,这个点一定是起点; 一个点,入度比出度大1,这个点一定是终点.其余点的出度等于入度
(注意,只能大1,而且这样的点分别只能有1个,而且存在起点就一定要存在终点,存在终点就一定要存在起点)。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>

using namespace std;

const int MAX_N = 26;
const int MAX_M = MAX_N + 5;
int p[MAX_M], indgr[MAX_M], outdgr[MAX_M];

int _find(int x)
{
    return p[x] == x ? x : (p[x] = _find(p[x]));
}

int main()
{
    //freopen("in.txt", "r", stdin);
    int T, n;
    scanf("%d", &T);
    while(T--)
    {
        memset(indgr, 0, sizeof(indgr));
        memset(outdgr, 0, sizeof(outdgr));
        for(int i = 0; i < MAX_M; i++)
            p[i] = i;
        int u, v, x, y, _par, a = 0, b = 0;
        bool ok1 = true, ok2 = true;
        char str[1000 + 10];
        scanf("%d", &n);
        for(int i = 0; i < n; i++)
        {
            scanf("%s", str);
            x = str[0] - 'a', y = str[strlen(str) - 1] - 'a';
            u = _find(x), v = _find(y);
            if(u != v)
                p[u] = v;
            indgr[y]++, outdgr[x]++;
        }
        for(int i = 0; i < MAX_N; i++)
        {
            if(indgr[i] != 0 || outdgr[i] != 0)
            {
                _par = _find(i);
                break;
            }
        }
        for(int i = 0; i < MAX_M; i++)
        {
            if(indgr[i] != 0 || outdgr[i] != 0)
            {
                if(_find(i) != _par)
                {
                    ok1 = false;
                    break;
                }
            }
        }
        if(ok1)
        {
            for(int i = 0; i < MAX_N; i++)
            {
                if(abs(indgr[i] - outdgr[i]) > 1)
                {
                    ok2 = false;
                    break;
                }
                else if(indgr[i] - outdgr[i] == 1)
                    a++;
                else if(indgr[i] - outdgr[i] == -1)
                    b++;
            }
        }

        if(ok1 && ok2 && (a == b && (a == 0 || a == 1)))
            printf("Ordering is possible.\n");
        else
            printf("The door cannot be opened.\n");
    }
    return 0;
}


SAP传输请求全流程详解:从SE10创建到STMS跨环境部署(附常见错误排查) 本文详细解析了SAP传输请求的全流程,从SE10创建到STMS跨环境部署,并提供了常见错误排查方法。涵盖工作台请求、定制请求等类型,以及STMS传输原理和实战操作技巧,帮助用户高效管理SAP系统变更。 阅读详情

相关推荐

Mac上安装Label Studio

以上步骤详细说明了如何在Mac上通过Anaconda安装Label Studio。记得根据你的具体需求选择是否创建新的环境,并使用conda或pip进行安装。安装完成后,务必验证Label Studio是否成功运行。

g2526的博客 1958

欧拉路(有/无向图的欧拉回路)

哥尼斯堡(Koenigsberg)七桥问题【欧拉图】区分一些概念:欧拉路径、欧拉回路、欧拉图欧拉路径:给定一个连通图,若存在一条路径,(一笔画)欧拉回路:在欧拉路径的基础上,需要欧拉图:具有的图,称为欧拉图在无向图下:(1)欧拉路径的充要条件:奇点为0个或者是2个(2)欧拉回路的充要条件:奇点为0个有向图:(1)欧拉路径的充要条件:要么所有点的出入度都相等;要么除了起点和终点外,所有点的出入度相等,起点的出度比入度多1,终点的入度比出度多1。

S05251_1的博客 1555

宜搭,高级认证实操2,FaaS连接器指导教程

找到FaasEntry.java将如下代码整体替换,注意引包。如图所示在util下新建EDSUtil.java代码如下。回到连接器界面点击右上角测试-->测试。连接器工厂-->新建FaaS连接器。保存-->前往云IDE开发。返回如图所示代码,部署成功。

2301_80286061的博客 3342

欧拉道路全集

前言 怎么说,真的就是????王 定义 欧拉道路 什么叫做欧拉道路,其实就是一笔画完整个图的所有边,并且不可以重复走同一条边。 欧拉回路 就是起点和终点相同的欧拉道路,注意欧拉回路也属于欧拉道路 欧拉图 有欧拉回路的图我们叫做欧拉图。 半欧拉图 有欧拉道路的图,我们叫做半欧拉图。 判断 判断欧拉道路,也就是半欧拉图 对于有向图,充分必要条件是,整个图联通,并有且只有两个度为奇数的点,一个入度比出度大一,另外一个相反。 这两个也就是欧拉道路的起点和终点。 对于无向图,充分必要条件是 ,整个图联通,并有且只有两

yyyyrr的博客 643

GROMACS新手必看:从PDB文件到完整分子动力学模拟的保姆级教程

本文提供GROMACS分子动力学模拟的保姆级教程,从PDB文件处理到完整模拟流程全覆盖。详细讲解结构预处理、系统构建、能量最小化、生产模拟等关键步骤,并分享性能优化和结果分析技巧,帮助新手快速掌握分子动力学模拟的核心操作。

yhn456789的博客 763

一种导弹追踪算法的MATLAB仿真实现

以下是一个用于模拟机动变轨导弹和防空导弹追踪过程的 MATLAB 代码,同时会提供 3D 效果展示。你可以运行这段代码,从而观察机动变轨导弹和防空导弹的速度与位置变化。

SmartGridequation的博客 933

C++的算法:欧拉道路与欧拉回路

C++的算法:欧拉道路与欧拉回路

全栈工程师Linda的博客 1675

保姆级教程:用MediaPipe和BlazePose在Python里实时追踪你的健身动作(附完整代码)

本文提供了一份详细的Python教程,教你如何使用MediaPipe和BlazePose实现实时健身动作追踪。从环境配置、模型选型到实时视频流处理架构设计,再到健身动作量化分析和可视化反馈系统优化,教程涵盖了完整的实现步骤和代码示例,帮助开发者快速构建高效的姿态特征点检测系统。

weixin_42531779的博客 153

欧拉道路 (模板)

Problem 求有向图字典序最小的欧拉道路,没有输出“No” P7771 【模板】欧拉路径 Solution 欧拉道路:一笔画,特别地,起点与终点相同时称为欧拉回路。 有向图欧拉道路:一般情况:只存在一个出度比入度大一的点作为起点,只存在一个入读比出度大一的点作为终点,其余点入度与出度相等。特殊情况:欧拉回路,所有点的入度与出度相等。其余情况均不存在欧拉道路。 求字典序最小的欧拉道路:对所有点所能到达的点按照字典序排序,然后dfs,注意,直接按照dfs序输出是不对的,因为一般情况下要保证终点最后到达

gyp0205的博客 638

Windows下通过Ollama安装使用DeepSeek本地大模型

本地安装运行Deepseek大模型

canbaojun的博客 1283

人工智能100问☞第5问:什么是AI三要素?

人工智能的核心三要素是​​数据、算法和算力​​,分别作为AI的“燃料”、“大脑”和“动力”,三者协同驱动智能系统的学习、推理与决策能力。

bjdx_001的博客 1991

欧拉道路/回路总结

欧拉道路可能包含回路,那么在dfs时,可能提前找到回路,这条回路可能不是完整的欧拉道路(因为没有遍历完所有的边!)如果写成前序遍历的话,存储起来的路径就不是一条完整的路径了!如果是后序遍历的话,当dfs时遇到了回路,那么就退出当前栈的搜索并继续寻找其他的路径,最终得到只有一条回路的路径——欧拉回路。可见对于一定要求出欧拉路径的问题,可以不必先检查连通分量数是否唯一,在dfs结束时判断路径是否包含所有点(含重复点)即可。由于是后续遍历,存的路径其实是逆序的,输出时需要注意(当然本题顺序输出逆序输出都可以)。

hlhgzx的博客 463

某音私信接口二进制解析

本文探讨了某音私信接口的二进制请求处理过程,重点分析了请求体中的非文本字符和混合编码结构。文章详细描述了编码过程,包括使用Protocol Buffers的序列化方法将结构化数据转换为字节流,并通过Uint8Array包装成二进制数组。作者展示了如何提取和补全s.encode方法,并将其转化为Base64字符串以便在Python中解码执行

码王吴彦祖的博客 901

UVa 10129 - Play on Words, 欧拉道路

10129 - Play on Words 8881 24.43% 1751 68.65% 题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=105&page=show_problem&proble

D_Double's Journey 8274

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UVA - 10129 Play on Words(有向欧拉道路存在性)

题目链接:http://vjudge.net/problem/UVA-10129 题意:给定n个单词,问能否将其按前一个单词的最后一个字母和后一个单词的第一个字母相同的连接方式将其连成一串。 分析:对于单词只考虑第一个字母和最后一个字母即可。将首尾字母看成节点,单词看成边,问题就变成是否存在一条路径恰好将所有的边走一遍,这就是欧拉道路的定义,所以这是一条判断是否是欧拉道路的简单题目。方法可

smwqd_yehua_cx的博客 609

VB摄像头监控

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

UVa 10129 - Play on Words(欧拉道路)

给出n个单词, 是否可以把所有单词排成一个首尾相连的排序。 典型的欧拉道路的题, 把字母当成结点,然后判断是否为欧拉道路。 欧拉道路存在的两个条件: 1.最多只能有两个结点的入度不等于出度,两点有一点的入度 - 出度 = 1,此为起点, 另一点出度 - 入度 = 1, 此为终点。另外就是每个点的入度等于出度。 2.忽略方向得到的地图连通。

ZmiL_ 461

UVA10129-Play on Words(欧拉道路)

题目链接:UVA10129-Play on Words题目大意:给出一些单词,如果一个单词的首部字母和另一个单词的尾部字母相同,则可以首尾连接,每个单词只能使用一次,判断这些字母是否可以全部连接成一个串。解题过程: 刚开始没弄清有向图和无向图欧拉路的定义,以为只判断边就可以了,于是简单写了一个只判读边的。 显然是错误的,自己试了几组数据就不对。 我这样想可能是被这个题带偏了节奏(误 然后仔细看了下

ACM_Fish的博客 598

UVa 10129 - Play on Words 欧拉道路

Play on Words Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve it to open that doors. Because there is no other way to open the doors, the puzz

GodLike 1506

Uva 10129 - Play on Words 单词接龙 欧拉道路应用

跟Uva 10054很像,不过这题的单词是不能反向的,所以是有向图,判断欧拉道路。 关于欧拉道路(from Titanium大神): 判断有向图是否有欧拉路 1.判断有向图的基图(即有向图转化为无向图)连通性,用简单的DFS即可。如果图都不连通,一定不存在欧拉路 2.在条件1的基础上   对于欧拉回路,要求苛刻一点,所有点的入度都要等于出度,那么就存在欧拉回路了   对于欧拉道路,要求

水果君の日常 3470

【UVA10129】Play on Words(欧拉回路+有向图连通性判断+打印欧拉道路)

题目:https://vjudge.net/problem/UVA-10129 基础知识: 欧拉道路:形象成为“一笔画”,即一笔可以经过所有的边,除了起点和终点外,其他点必定是入度=出度,即为偶点 无向图: 连通且最多只有两个奇点(奇度数顶点)----存在欧拉道路 连通且都是偶点-----存在欧拉回路(从顶点出发又回到顶点) 有向图: 连通且最多只有两个顶点入度不等于出度,并且一个点入...

Cassie_zkq的博客 701

uva10129 Play On words (有向欧拉道路存在性)

题意:判断能不能把所有单词首尾相连。 能单词相连的部分字母必须相同 思路:其实就是判断欧拉道路的存在性。 每个单词只取首位, 不用保存。  刚看题目以为是拓扑排序。 有点混乱了。    方法一:用并查集判断图的连通性(判断连通性需要把有向图当做无向图来看!)    方法二:用DFS来判断图的连通性。    以上两种方法都要判断度数的合法性: 即 所有vertex 的 in-deg == o

MistKafka的专栏 3313

uva 10129 Play on Words(欧拉道路)

Play on Words Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve it to open that doors. Because there is no other way to open the doors, the pu

不慌不忙、不急不躁 1578

UVa 10129 Play On Words【欧拉道路 并查集 】

题意:给出n个单词,问这n个单词能否首尾接龙,即能否构成欧拉道路 按照紫书上的思路:用并查集来做,取每一个单词的第一个字母,和最后一个字母进行并查集的操作 但这道题目是欧拉道路(下面摘自http://blog.youkuaiyun.com/hcbbt/article/details/9316301) 关于欧拉道路(from Titanium大神): 判断有向图是否有欧拉路 1.判断有向图...

weixin_30511107的博客 89

UVA 10129 Play on Words(欧拉道路)

题意:给你n个字符串,问你是否可以出现一条链,保证链中每个字符串的第一个元素与上一个字符串的最后一个元素相同,注意可能重复出现同一个字符串 题解:以每一个字符串第一个元素指向最后一个元素形成一个有向图,判断这个有向图是否可以形成欧拉路就好    注意可能有重边与自环,因此求欧拉路时判断的是是否使用完了所有的边,求起点时注意出度与入度的计算    欧拉道路是从一个点一笔画完整张图(欧拉回...

weixin_33919941的博客 100
上一篇: POJ 1324 Holedox Moving(状态压缩BFS)
下一篇: HDU 3018 Ant Trip(欧拉回路)
小爷永远不死
博客等级 码龄15年 58粉丝 363原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值