poj1386(欧拉回路)

<a target=_blank href="http://poj.org/problem?id=1386" target="_blank">
</a>
题目链接

解题思路:把每个单词当成是一条有向边。把首字母和尾字母当成是节点,如果该字母是一个单词的首字母,该字母的入度就加一,如果是尾字母,该字母的出度就加一。然后判断是否形成欧拉回路即可。

欧拉路径判断条件:首先该图必须是连通图。对于无向图,所有顶点的读都为偶数,对于有向图,要么所有顶点的入度等于出度,要么只有两个顶点入度和出度不同,一个入度比出度大一,一个出度比入度大一。

连通图的判断方法:对每条边的两个顶点进行合并,如果最终能合并到一个集合,说明该图为连通图。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <vector>

using namespace std;
int ru[27], ch[26], num, root[26];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值