1126 Eulerian Path

news/2024/7/2 6:21:57

主要考英语或者数学基础。

一幅连通图的奇点个数为0或2时才能够被一笔画。

连通图的判断用DFS来计数。

连通图+0个奇点:Eulerian

连通图+2个奇点:semi-Eulerian

非连通图/连通图+其他数量的奇点:non-Eulerian

AC代码

#include<cstdio>
#include<iostream>
#include<set>
#include<vector>
#include<map>
#include<algorithm>using namespace std;const int SUP = 100000000;
const int maxn = 510;int degree[maxn] = {0};int vNum,eNum;vector<int> G[maxn];int cnt = 0;
bool vis[maxn] = {0};void DFS(int root){vis[root] = 1;cnt ++;for(int i=0;i<G[root].size();i++){int j = G[root][i];if(vis[j]==0)DFS(j);}
}int main(){cin>>vNum>>eNum;for(int i=0;i<eNum;i++){int v1,v2;cin>>v1>>v2;degree[v1]++;degree[v2]++;G[v1].push_back(v2);G[v2].push_back(v1);}int oddN = 0;for(int i=1;i<=vNum;i++){if(degree[i]%2!=0){oddN ++;}printf("%d%s",degree[i],i==vNum?"\n":" ");}DFS(1);if(oddN==0&&cnt==vNum)printf("Eulerian\n");else if(oddN==2&&cnt==vNum)printf("Semi-Eulerian\n");else printf("Non-Eulerian");return 0;
}


http://lihuaxi.xjx100.cn/news/240854.html

相关文章

linux实现nat转发和内部端口映射

路由机 eth0:114.114.114.114(公网ip)  eth1:192.168.1.1(内网ip) pc1 eth0:192.168.1.2(内网ip)    eth1(拨号ip) pc2 eth0:192.168.1.3(内网ip)    eth1(拨号ip) 1.配置路由机网卡信息 vim /etc/sysconfig/network-scripts/ifcfg-eth1 TYPEEthernet BOOTPROTOstati…

你需要的大概不是 enumerated

作者&#xff1a;KHANLOU&#xff0c;原文链接&#xff0c;原文日期&#xff1a;2017-03-28译者&#xff1a;四娘&#xff1b;校对&#xff1a;Cwift&#xff1b;定稿&#xff1a;CMBSwift 标准库里最容易被滥用的就是 Sequence 的 enumerated() 函数。这个函数会返回一个新的序…

IP地址和MAC地址

MAC地址又称硬件地址&#xff0c;是MAC帧的头部&#xff0c;在数据链路层只能看见MAC地址。 IP地址是逻辑地址&#xff0c;是IP数据报的头部&#xff0c;路由器根据IP地址进行路由选择。 IP地址为4个字节32位&#xff0c;编制经历了3个历史阶段。 MAC地址为6个字节48位。

深入理解C语言的define

上一篇讲到#include这个预编译指令&#xff0c;还有个常用的预编译指令&#xff1a;#define。它的表面意思是定义&#xff0c;通常被说成“定义常量”&#xff0c;但其真正作用是替换&#xff1b;如&#xff1a;#define SUCCESS 1这整句话是定义一个宏替换&#xff0c;其中SUCC…

1103 Integer Factorization 需再做

本题是典型的DFS剪枝 我对DFS有了更深的认识&#xff1a;整个过程就是一片森林(根节点不唯一)的生长&#xff0c;到了界限就得到结果并返回或者得不到结果也返回&#xff0c;DFS的参数存放的是所有需要积累的变量。 提示&#xff1a; 1. 最外层的while或者for可以看成是一个…

Windows和linux双系统——改动默认启动顺序

电脑上装了Windows 7和Ubantu双系统&#xff0c;因为Linux系统用的次数比較少而且还是默认的启动项对此非常不能容忍&#xff0c;因此得改动Windows为默认的启动项。 因为电脑上的系统引导程序是GRUB&#xff0c;因此改动当然也就落到Linux系统上啦。改动/boot/grub/grub.cfg该…

Java设计模式——适配器模式

《JAVA与模式》之适配器模式 在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器&#xff08;Adapter&#xff09;模式的&#xff1a; 适配器模式把一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。…

1130 Infix Expression

考察&#xff1a;DFS进行中序遍历。 注意&#xff1a;给除了根节点以外的父节点加左右括号。 AC代码 #include<cstdio> #include<iostream> #include<set> #include<vector> #include<map> #include<algorithm> #include<cmath> …