欧拉路HDU3018

欧拉路,欧拉回路,讲的实际上就是一笔画的问题。

给定n个点,m条边,如果能一笔把所有边都连上就是欧拉路,如果起点和终点是同一点,就是欧拉回路。

欧拉路的特征:对于无向图,如果所有点的度都是偶数,那么任意点都可以作为欧拉路的起点;如果存在两个点的度是奇数,其他点的度都是偶数,那么这两个分别作为欧拉路的起点和终点。

  对于有向图,如果每个点的入度和出度相同,一定能形成欧拉路;如果存在两个点的入度和出度是奇数,以这两个点为起点和终点可以形成一条欧拉路。4

  判断给定一个连通图通过几笔能画出来:一笔画能消去两个度为奇数的点,如果没有度为奇数的点,一笔就可以连通。

HDU3018

给定图,多个连通图,孤立的点忽略,不存在反身边(就是自己连自己)。

用并查集记录连通分支,分别计算各个连通分支上需要的笔画数

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 100000+10;
 4 
 5 int pre[maxn],de[maxn];
 6 map<int,int>mp;
 7 map<int,int>s;
 8 int n,m,u,v;
 9 int f(int x){return x==pre[x]?x:pre[x]=f(pre[x]);}
10 void mix(int a,int b)
11 {
12     int x=f(a),y=f(b);
13     if(x!=y) pre[x]=y;
14 }
15 int main()
16 {
17     while(~scanf("%d%d",&n,&m))
18     {
19         for(int i=0;i<=n;i++)pre[i]=i;
20         memset(de,0,sizeof(de));
21         while(m--)
22         {
23             scanf("%d%d",&u,&v);
24             mix(u,v);
25             if(u!=v) {de[u]++;de[v]++;}
26         }
27         mp.clear();
28         s.clear();
29         int t=0;
30         for(int i=1;i<=n;i++)
31         {
32            if(tag[i]) t++;
33             else {
34             int p=f(i);
35                 if( de[i]&1 ) mp[p] ++;     //xia biao de  yi yi
36                 if(de[i]) s[p]=1;
37             }
38         }
39         int tot=0;
40         map<int,int>::iterator iter=mp.begin();
41         for(;iter!=mp.end();iter++)
42             tot=tot+iter->second / 2;
43         tot=tot+s.size()-mp.size();
44         cout<<tot<<endl;
45 
46     }
47     return 0;
48 }
View Code

 

转载于:https://www.cnblogs.com/star-and-me/p/6885847.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面

前文&#xff0c;我们完成了开始游戏界面的搭建。本文将实现缓冲加载界面的搭建。并搭建与前面俩界面间的桥梁。实现输入正确用户名密码后&#xff0c;进入开始游戏界面&#xff0c;点击开始游戏按钮后&#xff0c;进入缓冲加载界面的功能。界面示意图&#xff1a;具体要求&…

本地修改指向服务器,本地修改指向服务器

本地修改指向服务器 内容精选换一换已获取服务器管理员帐号与密码。打开CMD运行窗口&#xff0c;输入gpedit.msc&#xff0c;打开本地组策略编辑器。打开组策略在指定RD会话主机服务器的授权模式下拉列表中选择按用户。设置允许RD最大连接数位999999。设置结束已断开连接的会话…

expect 批量修改服务器用户密码

每个技术人员离职&#xff0c;留下的人 就要修改他的服务器账号密码&#xff0c;很麻烦&#xff0c;故写次脚本偷懒 change.sh 如下 12345678910#!/bin/bashfor i in awk {print $1} account.txt dojawk -v l"$i" {if(l$1)print $2} account.txt aawk -v l"$i&q…

虚拟机安装服务器2008,VMware Workstation 虚拟机安装64位windows 2008 R2 系统

偶看现在使用的电脑是 惠普 康柏 Elite 8300 MT Mini Tower&#xff0c;操作系统 Windows 7 旗舰版 64位基本硬件展示处理器 英特尔 第三代酷睿 i5-3470 3.20GHz 四核主板 惠普 3397内存 8 GB ( 记忆科技 DDR3 1600MHz / 镁光 DDR3 1600MHz )主硬盘 西数 WDC WD5000AAKX-60U6A…

黑客入门之单机游戏外挂

转载于: http://www.cnblogs.com/huipengbo/p/6887170.html 一.本文以植物大战僵尸外挂的编写为例&#xff0c;介绍单机游戏外挂的编写和使用过程。 1.启动单机游戏如&#xff1a;植物大战僵尸如下图 2.想明白我们写外挂的目的&#xff1a;让我们有充足的阳光数量来使用&#x…

巨无霸Win8PE X64服务器维护专用,【13年4月4日】维护版win8pe【32位+64位+纯64位】(支持BIOS+EFI)...

因为单独一个PE是不够用的&#xff0c;已经制作了合盘&#xff0c;可BIOS启动&#xff0c;也可EFI启动。详情移步》欢迎下载使用&#xff0c;觉得好的话&#xff0c;请回帖支持一下&#xff0c;您的支持&#xff0c;就是我的动力。。。。预祝大家新的一年合家欢乐&#xff01;工…

centos7修改服务器密码忘记,Centos7忘记root密码怎么修改

Centos7忘记root密码怎么修改一、 reboot重启机器&#xff0c;当出现引导界面时&#xff0c;按e进入内核编辑界面。二、 往下翻&#xff0c;到LANGzh_CN.UTF-8后面添加 \rd.break(别忘了空格)三&#xff0c; 修改完成后&#xff0c;按下CtrlX组合键来运行这个修改后的内核程序(…

1.移动端测试知识笔记(面试必备,测试点,adb命令)

移动端测试&#xff1a; 移动应用&#xff0c;特性(功能) 满足 需求(产品文档&#xff0c;隐性需求) 一。App功能测试&#xff1a; 死活背下来1.业务逻辑正确性测试&#xff1a; 产品文档&#xff0c;隐性需求- 写成测试用例 2.兼容性测试&#xff1a; 1.系统版本&#xff1a…

Day 3 网络基础

网络基础 一、什么是互联网协议及为何要有互联网协议 &#xff1f; 互联网协议&#xff1a;指的就是一系列统一的标准&#xff0c;这些标准称之为互联网协议。互联网的本质就是一系列的协议&#xff0c;总称为‘互联网协议’&#xff08;Internet Protocol Suite)。 互联网协议…

element里面popover里面的高度_五斗柜的高度一般是多少 五斗柜放在什么位置好

五斗柜也就是一种抽屉收纳柜&#xff0c;目前在卧室或是书房等空间均是可以见到。其根据使用用途的不同&#xff0c;进而有着高度和款式&#xff0c;以及摆放位置等等的区别。因此&#xff0c;下面带来五斗柜的高度一般是多少、五斗柜放在什么位置好&#xff0c;以及五斗柜里面…

【NOIP2016】愤怒的小鸟

题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说&#xff0c;这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处&#xff0c;每次Kiana可以用它向第一象限发射一只红色的小鸟&#xff0c;小鸟们的飞行轨迹均为形如的曲线&#xff0c;其中a,b是Kiana指定的参数…

java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?

大家好啊&#xff0c;今天给大家分享下我的开发历程中&#xff0c;我知道的那些被淘汰的技术或者框架&#xff0c;有些我甚至都没有用过&#xff0c;但我知道它曾经风光过。废话不多说&#xff0c;下面我要开始吹了……1、Swing下面这个是用 swing 开发的&#xff1a;Swing 算是…

[Java 安全]加密算法

Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式&#xff0c;这种形式不易被人直接识别。 Base64是一种很常见的编码规范&#xff0c;其作用是将二进制序列转换为人类可读的ASCII字符序列&#xff0c;常用在需用通过文本协议&#xff08;比…

2个字段并在一次插入一个字段里面_elasticsearch外用与内观(二)-当插入文档时,elasticsearch都在做什么...

Previous: elasticsearch外用与内观(一)-常用功能与使用方法 在了解了es的基本用法之后&#xff0c;我们再来看看当插入文档数据时&#xff0c;elasticsearch都在做什么。首先&#xff0c;es的索引只是一个逻辑概念&#xff0c;实际上是由一个个物理分片组成的,每个分片就是一个…

学习Spring Data JPA

简介 Spring Data 是spring的一个子项目&#xff0c;在官网上是这样解释的&#xff1a; Spring Data 是为数据访问提供一种熟悉且一致的基于Spring的编程模型&#xff0c;同时仍然保留底层数据存储的特​​殊特性。它可以轻松使用数据访问技术&#xff0c;可以访问关系和非关系…

git 常用commands(转)

常用 Git 命令清单 作者&#xff1a; 阮一峰 日期&#xff1a; 2015年12月 9日 我每天使用 Git &#xff0c;但是很多命令记不住。 一般来说&#xff0c;日常使用只要记住下图6个命令&#xff0c;就可以了。但是熟练使用&#xff0c;恐怕要记住60&#xff5e;100个命令。 下面是…

检查集群状态命令_轻松管理Kubernetes集群的7个工具

Kubernetes正在不断加快在云原生环境的应用&#xff0c;但如何以统一、安全的方式对运行于任何地方的Kubernetes集群进行管理面临着挑战&#xff0c;而有效的管理工具能够大大降低管理的难度。K9sk9s是基于终端的资源仪表板。它只有一个命令行界面。无论在Kubernetes仪表板Web …

vscode 模糊部分代码_本周 GitHub 速览:您的代码有声儿吗?(Vol.38)

作者&#xff1a;HelloGitHub-小鱼干摘要&#xff1a;还记得花式夸赞程序员的彩虹屁插件 vscode-rainbow-fart 吗&#xff1f;它后续有人啦&#xff01;JazzIt 同它的前辈 vscode-rainbow-fart 一样&#xff0c;是一个能让代码“发声”的工具&#xff0c;它会在脚本运行成功或者…

C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)

今天写的是二叉树操作的实验&#xff0c;这个实验有三个部分&#xff1a; ①建立二叉树&#xff0c;采用二叉链表结构 ②先序、中序、后续遍历二叉树&#xff0c;输出节点值 ③销毁二叉树 二叉树的节点结构定义 typedef struct BiTNode //二叉树的节…

Django 入门项目案例开发(中)

关注微信公众号&#xff1a;FocusBI 查看更多文章&#xff1b;加QQ群&#xff1a;808774277 获取学习资料和一起探讨问题。 昨天已经描述了如何搭建Django的开发环境&#xff0c;今天描述业务流程&#xff0c;具体我们要实现一个什么样的业务&#xff1b; 以下的业务都是假设的…