POJ1386Play on Words(欧拉回路)

workbench拓扑优化教程_拓扑优化实例-轮毂的优化 拓扑优化实例-轮毂的优化ANSYS Workbench的新版本集成了topology optimization模块,为用户的拓扑优化提供的很好的应用。通过拓扑优化topology optimization模块的使用可以对拓扑有较好的理解,该模块拓扑优化可以简单概括为一句话:如何在合适的位置去除确定的材料使用量,而相应的刚度变化影响最小。本例以汽车轮毂为例,来确定轮毂的辐条形状。1.建立模型DM中可... 阅读详情

转自:POJ1386Play on Words(欧拉回路)

【题意】这个就相当于成语接龙,需满足前一个单词的尾字母与后一个的首字母相同。然后就是问是否 存在欧拉通路。
【分析】用两个数组存每个字母的入度与出度,再用vis[]判断字母是否出现,然后并查集判断是否联通。
  定理1:无向图G存在欧拉通路的条件是:G为连通图,并且G只有两个奇度节点或者无奇度节点。
  推论1:(1)当G是仅有两个奇度节点的连通图时,G的欧拉通路必以此两个节点为端点。
               (2)当G是无奇度节点连通图时,G比为欧拉回路。
               (3)G为欧拉图(存在欧拉回路)的充要条件是G为无奇度节点的连通图。
  定理2:有向图D存在欧拉通路的充要条件是:D为有向图,D的基图联通,并且所有顶点的出度与入度都相等;或者除两个顶 点外 其余顶点的出度与入度都相等,而这两个顶点中一个顶点的出度-入度==1,另一个出度-入度==-1;

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#include<functional>
#define mod 1000000007
#define inf 0x3f3f3f3f
#define pi acos(-1.0)
using namespace std;
typedef long long ll;
const int N=100005;
const int M=150005;
char str[N];
int n,m;
int vis[27],pre[27];
int out[27],in[27];
struct man
{
    int u,v;
} edg[N];
void init()
{
    memset(vis,0,sizeof(vis));
    memset(out,0,sizeof(out));
    memset(in,0,sizeof(in));
    for(int i=0; i<26; i++)pre[i]=i;
}
int Find(int x)
{
    if(pre[x] != x) pre[x] = Find(pre[x]);
    return pre[x];
}

void Union(int x,int y)
{
    x = Find(x);
    y = Find(y);
    if(x == y) return;
    pre[y] = x;
}
bool beconnect()    //用并查集判断这个图是否联通
{
    for(int i=0; i<n; i++)
    {
        int u=edg[i].u,v=edg[i].v;
        if(u!=v&&Find(u)!=Find(v))Union(u,v);
    }
    int f=-1,k;
    for(k=0; k<26; k++)
    {
        if(!vis[k])continue;
        if(f==-1)f=k;
        else if(Find(k)!=Find(f))break;
    }
    if(k<26)return false;
    return true;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        init();
        scanf("%d",&n);
        for(int i=0; i<n; i++)
        {
            scanf("%s",str);
            int u=str[0]-'a',v=str[strlen(str)-1]-'a';
            edg[i].u=u;
            edg[i].v=v;
            vis[u]=vis[v]=1;
            out[u]++;
            in[v]++;
        }
        bool flag=true;
        int cnt1=0,cnt2=0;
        for(int i=0; i<26; i++)
        {
            if(!vis[i])continue;
            if(abs(out[i]-in[i])>1)
            {
                flag=false;
                break;
            }
            if(out[i]-in[i]==1)
            {
                cnt1++;
                if(cnt1>1)
                {
                    flag=false;
                    break;
                }
            }
            if(out[i]-in[i]==-1)
            {
                cnt2++;
                if(cnt2>1)
                {
                    flag=false;
                    break;
                }
            }
        }
        if(!((cnt1==1&&cnt2==1)||(cnt1==0&&cnt2==0)))flag=false;
        if(!beconnect())flag=false;
        if(flag)puts("Ordering is possible.");
        else puts("The door cannot be opened.");
    }
    return 0;
}

 

OCC WebGL案例编译实战:从FreeType配置到静态库生成 本文详细记录了将OCC(Open CASCADE Technology)3D图形库编译为WebAssembly(Wasm)并在浏览器中通过WebGL渲染的实战过程。重点解决了FreeType库的交叉编译配置、OCC核心库的裁剪与静态库生成,以及WebGL样例项目的CMake改造等关键步骤,为开发者提供了从环境搭建到最终集成的完整指南。 阅读详情

相关推荐

【SOFA】SOFA框架+Win10+VS2019 配置

SOFA (Simulation Open Framework Architecture)官网 SOFA 是一个开源的仿真框架,用于实时的物理仿真,而且主要针对医学上的仿真。主要用于研究人员开发新的算法,也可以作为一个有效的快速成型工具或是物理引擎。 官网中给出的配置方法写的很清晰,有着各个库或者软件的版本要求,仔细看按版本要求来 官网配置地址 官网给了两种方 1.通过脚本自动配置 2. 自己下载相关库通过CMake进行生成 第一种 没使用,不知道是否好使,因为如果其中有下载的东西,国内不一定能成功,大家可

GordonWei 5260

POJ 1386 Play on Words

题意:给N个单词,问能不能把所有的单词串起来。模型就是欧拉回路或者欧拉路径。 解: 只有26中字母,每种字母作为一个点。每个单词的首字母和尾字母连条单向边。 如果是欧拉回路,那么所有点的入度等于出度。 如果是欧拉路径,那么只有两个点的入度不等于出度,其一是起始点,出度比入度大1,另一个是结束点,入度比出度大1 显然,如果给的图由多个连通图构成,显然不能(并查集维护)。接下来就只需判断是欧

swust_lian的博客 341

FinRL实战:5步搞定股票量化交易策略(附Python代码)

本文详细介绍了如何使用FinRL框架,通过5个步骤构建基于深度强化学习的股票量化交易策略。内容涵盖从环境搭建、数据获取与预处理,到交易环境构建、模型训练(如PPO算法),以及策略回测评估与优化的完整流程,并提供了可运行的Python代码示例,帮助读者快速入门AI驱动的量化交易。

weixin_29062865的博客 626

POJ 1386 欧拉通路

这题是很明显的欧拉图,可以用每个单词的首字母和末字母组成有向边,首字母指向有向边,假如它们能构成欧拉图就能解开词迷打开门。有向图存在欧拉图通路的充要条件是:图的基图连通,并且所有点的入度等于出度;或者除两个点外,其余点的入度等于出度,而这两个点中的一个点的出度与入度相差为1,另一

paul08colin 369

野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(四)(基于HAL库)

以上内容都是参考别人资料自学的,很多地方都是凭感觉,因为理论部分不太会算,只要电机能转就行,其他性能指标都没考虑,因为不会,所以这纯属是学习记录帖。带宽在500时,电流波动小,但是响应很慢,就是堵转后不太容易恢复转动。速度环带宽设定小了,响应不够快,带宽设定大了波动比较大,电机感觉起来也震一点,而且,当带宽设到200的时候,启动直接就锁死了,应该是PI增益设定太大了。电流环带宽的试验:去掉速度环,让Iq_Set=2,Ud=0,此时电机是电流环闭环控制,用手堵转电机然后松开,看电流的波动以及响应情况。

XUEXIDEXIAOhai的博客 4553

VMware ESXi 7.0下Intel网卡SR-IOV配置实战:解决虚拟化网络延迟问题

本文详细介绍了在VMware ESXi 7.0环境下为Intel网卡配置SR-IOV(单根I/O虚拟化)的完整实战流程。通过硬件辅助直通技术,虚拟机可直接访问物理网卡资源,有效绕过虚拟化层瓶颈,从而显著降低网络延迟和CPU开销,适用于金融交易、实时计算等对性能敏感的场景。

embedding5hiker的博客 552

POJ 1386(欧拉回路,欧拉通路,变相DNF)

/* 此题用了我一天,说明我的基础知府还是不够扎实; 考点: 欧拉回路和欧拉通路, 加变相DNF; 前提:要是连通图;(用dnf,(每一步两头搜)) 欧拉回路,要求图的每一个点的出度和入度一样, 欧拉通路,要求图的起点的出度比入度大1,终点的出度比入度少于1; */ #include #include #include using namespace std; c

julicliy的博客 353

随机变量序列 收敛 检验 matlab,利用MATLAB验证样条插值的收敛性

问题提出多项式插值是不收敛的,即插值的节点多,效果不一定就好。对样条函数插值又如何呢?理论上证明样条插值的收敛性是比较困难的,但通过本实验可以验证这一理论结果。.实验内容请按一定的规则分别选择等距或者非等距的插值节点,并不断增加插值节点的个数。考虑实验2.1中的函数或选择其他你有兴趣的函数。(中函数)。实验要求(1)随节点个数增加,比较被逼近函数和样条插值函数误差的变化情况。分析所得结果并与拉格朗...

weixin_30895121的博客 4735

ACM 训练大纲【CSUST_ACM】

ACM 训练大纲                                                                                                                             Changsha University of Science & Technology

free斩 5708

[QMT量化交易小白入门]-九十五、多因子选股和趋势择时股票量化交易策略,年化收益率40.61%

本策略采用“双层过滤”机制:第一层基于多维度财务指标进行股票池筛选(多因子选股),第二层运用均线系统和MACD指标实施动态择时(趋势跟踪)。这种设计既保证了组合的质量下限,又能灵活应对市场波动。因子配置科学性:涵盖估值、成长、盈利、动量四大类因子风险控制精细化:设置动态止损与仓位管理机制信号验证严格性:多重条件交叉验证提升胜率。

木头大左的博客 799

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 817

POJ ~ 1386 ~ Play on Words (欧拉路)

题意:给你n个单词(只有小写),要求这些单词首尾相连,问你这n个单词能不能全部连起来,可以连成一条链或者连成一个环。 思路:顶点集合就是26个小写字母,用0到25来表示,每个单词的首字母到尾字母就是一条有向边,因为单词是不能倒回来的。其实就是问你这个图是否存在欧拉道路(一条链的情况)或者欧拉回路(环的情况),反正存在欧拉路就是成功的,否则就是失败。 ①有一个入度比出度大一的点&&有一个出度比入

张松超的博客 461

《爬虫和逆向教程》 - 专栏介绍和目录

本专栏为爬虫初学者和进阶开发者量身定制的爬虫和逆向学习园地。为你提供全面而深入的爬虫和逆向技术指导,从入门到精通,从基础理论到高级实战,助你在数据的海洋中畅游,挖掘出有价值的信息。通过本专栏的学习,你将具备独立开发和优化爬虫程序的能力,及逆向分析能力和项目开发能力,成为爬虫领域的佼佼者。

数据知道的博客 2万+

[欧拉回路] poj 1386 Play on Words

题目链接: http://poj.org/problem?id=1386 Play on Words Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9685   Accepted: 3344 Description Some of

cc_again的专栏 1284

android 蓝牙通讯demo

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

POJ--1386--Play on Words【判断有向图欧拉通路、欧拉回路】

链接:http://poj.org/problem?id=1386 题意:要开启一扇门,n个单词是密码,n个单词中,如果一个单词的首字母和前一个单词的尾字母相同,并且每个单词都能这么连起来且只用一次,则门可以开启,否则不能开启,现给出单词,判断门是否可以开。 有向图欧拉通路充要条件:D为有向图,D的基图连通,并且所有顶点的出度与入度都相等;或者除两个顶点外,其余顶点的出度与入度都相等,

阳光照耀圣西罗 1271

老版QQ原生表情gif动态

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

POJ 1386 Play on Words(判断欧拉回路存在)

//求欧拉回路,注意欧拉图的性质 //构图的思想是以单词的首字母和末字母作为结点构图,将单词作为一条有向边 //(A)----acm------>(M)-----malform---->(M)------mouse----->(E) //1、第一步是要先对图的连通性进行判断,即去掉边的方向,看图是否连通 //我看了数据规模才26,我就偷懒写个Floyd水下算了 //2、第二步就是根据欧拉图的性质进行判断就可以了,判断存在欧拉道路或存在欧拉回路 //(1)有向图G为欧拉图(存在欧拉回路),当且仅当

Czy 1266

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

poj 1386 Play on Words(有向图欧拉回路)

1 /* 2 题意:单词拼接,前一个单词的末尾字母和后一个单词的开头字母相同 3 思路:将一个单词的开头和末尾单词分别做两个点并建一条有向边!然后判断是否存在欧拉回路或者欧拉路 4 5 再次强调有向图欧拉路或欧拉回路的判定方法: 6 (1)有向图G为欧拉图(存在欧拉回路),当且仅当G的基图连通,且所有顶点的入度等于出度。 7 (2)有向图G为...

aipiannian6725的博客 143

poj 1386 Play on Words 有向欧拉回路

题目链接:http://poj.org/problem?id=1386 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 op...

weixin_30549175的博客 104

ZOJ2016 POJ1386 HDU1116 Play on Words,欧拉路径及欧拉回路

参考这里的点击打开链接,把欧拉路径和欧拉回路的判断总结的淋漓尽致。 /******************************************************************************* # Author : Neo Fung

Neo Fung的专栏 1249

POJ1386Play on Words-欧拉回路判定

题目链接:http://poj.org/problem?id=1386 题目大意:给定n个单词序列,求能否将所有的单词首尾相连,第一个和最后一个可以不相连。 题目思路:单词由小写字母组成,因为本题中我们只关注单词的首尾字母,那么我们就可以抽象出一个有向图,将每个字母抽象成一个节点,每个单词表示成一条有向边,单词的首字母和最后一个字母便是边的两个节点!那么本题就转换成能否从一个点出发,将所有的边

yxr941225的专栏 687

Play on Words(POJ 1386)---欧拉回路模板题

题目链接 题目描述 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 puzzle...

weixin_43960284的博客 211

POJ 1386 Play on Words 欧拉回路

Description 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

MissZhou要努力 436

POj 1386 Play on words 欧拉回路/通路,图的连通性判断

题目链接:#include #include #include #define M 28 using namespace std; int fa[M]; int Find(int x) { return x==fa[x]?x:fa[x]=Find(fa[x]); } int main() { int T,n; char str[1005]; int in_degre

旧时光 1150

POJ-1386 play on words(并查集+欧拉回路)

POJ-1386 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 ...

碳酸钙的01妖精的博客 225

POJ - 1386 Play on Words(基础欧拉回路)

点击打开题目链接 Play on Words Time Limit:1000MS Memory Limit:10000K Total Submissions:12369 Accepted:4198 Description Some of the secret doors contain a ver

Chook_lxk的博客 806

poj 1386 Play on Words门上的单词【欧拉回路&&并查集】

题目链接:http://poj.org/problem?id=1386 题目大意:给你若干个字符串,一个单词的尾部和一个单词的头部相同那么这两个单词就可以相连,判断给出的n个单词是否能够一个接着一个全部连通。 解题思路:其实就是让你判断是否是欧拉回路或欧拉通路,建图需要一点思维,把26个字母当成是节点,每个单词当成是一条有向边。 这题自己先实现了一遍,发现虽然样例能过,但是...

weixin_30949361的博客 74
上一篇: CodeForces - 1038C Gambling 模拟 贪心
下一篇: POJ 1041 欧拉路
flyzer
博客等级 码龄9年 27粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值