[noi712]练级
先考虑一个联通块,可以发现这个联通快内不会存在两个偶数的点
证明:如果存在,那么这两个点的某一条路径上的边全部反过来,可以使答案+2,即答案为点数或点数-1
同时,发现答案的奇数点数一定与边数同奇偶,那么答案就被确定了,具体实现可以使用并查集


1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 200005
4 int n,m,x,y,ans,f[N],e[N],v[N];
5 int find(int k){
6 if (k==f[k])return k;
7 return f[k]=find(f[k]);
8 }
9 int main(){
10 scanf("%d%d",&n,&m);
11 for(int i=1;i<=n;i++)f[i]=i;
12 for(int i=1;i<=n;i++)v[i]=1;
13 for(int i=1;i<=m;i++){
14 scanf("%d%d",&x,&y);
15 x=find(x);
16 y=find(y);
17 if (x==y)e[x]++;
18 else{
19 f[x]=y;
20 v[y]+=v[x];
21 e[y]+=e[x]+1;
22 }
23 }
24 for(int i=1;i<=n;i++)
25 if ((f[i]==i)&&(v[i]%2!=e[i]%2))ans++;
26 printf("%d",n-ans);
27 }
[noi712]练级的更多相关文章
- 简明Vim练级攻略(转载)
前言 今天看到这篇文章,共鸣点非常多.它把Vim使用分为4个级别,目前我自己是熟练运用前面三级的命令,在培养习惯使用第四级.完全就是我这一年来坚持使用Vim的过程.所以不管怎么我要转载这篇文章.翻译自 ...
- 简明Vim练级攻略(转)
前言今天看到这篇文章,共鸣点非常多.它把Vim使用分为4个级别,目前我自己是熟练运用前面三级的命令,在培养习惯使用第四级.完全就是我这一年来坚持使用Vim的过程.所以不管怎么我要转载这篇文章.翻译自& ...
- [分享] VIM 常用命令及游戏练级
分享一个不错的文章,讲解了 VIM 的常用命令. http://coolshell.cn/articles/5426.html 另,介绍一个可以帮助熟悉VIM命令的练级游戏. 游戏地址:http:// ...
- Linux命令练级初级
Linux命令练级初级 http://ke.qq.com/video/index.html?course_id=6815 ls -a 所有文件 -l 类型,连接数,所属用户,工作组, ...
- Vim练级笔记(持续更新)
漫漫练级路...作为一个VS重度依赖患者,又加上visual assist X 这种懒人必备的神级插件,转投vim门下,真是各种疼... vim用着用着就有拿鼠标去点的冲动,有木有啊! 不过经过一段时 ...
- 程序猿表白练级之Hello World
程序猿表白练级之Hello World ... 推荐一个优秀的编程网站:Hello World http://www.he11oworld.com/ The Hello World Collectio ...
- 推荐vim学习教程--《Vim 练级手册》
非常不错的vim学习资源,讲解的简单明了,可以作为速查工具,在忘记时就翻下.地址如下: <Vim 练级手册>
- Vim练级攻略(转)
转自平凡的世界:http://www.ccvita.com/ 前言今天看到这篇文章,共鸣点非常多.它把Vim使用分为4个级别,目前我自己是熟练运用前面三级的命令,在培养习惯使用第四级.完全就是我这一年 ...
- 练级(train)
练级(train) 试题描述 cxm 在迷宫中练级.迷宫可以看成一个有向图,有向图的每个边上都有怪物.通过每条边并消灭怪物需要花费 \(1\) 单位时间.消灭一个怪物可以得到一定数量的经验值.怪物被消 ...
随机推荐
- [AGC023D] Go Home 题解
题目传送门 Solution 首先排除掉特殊情况:若 \(S\) 在两侧,肯定会顺序/逆序直接走完,答案就是边界减去出发点. 考虑到若 \(P_1\geq P_n\),那么显然 \(1\) 不到家 \ ...
- 这么多TiDB负载均衡方案总有一款适合你
[是否原创]是 [首发渠道]TiDB 社区 前言 分布式关系型数据库TiDB是一种计算和存储分离的架构,每一层都可以独立地进行水平扩展,这样就可以做到有的放矢,对症下药. 从TiDB整体架构图可以看到 ...
- Java(32)File类的介绍
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228444.html 博客主页:https://www.cnblogs.com/testero ...
- Java:Iterator接口与fail-fast小记
Java:Iterator接口与fail-fast小记 对 Java 中的 Iterator接口 和 fail-fast,做一个微不足道的小小小小记 Iterator Iterator接口 Itera ...
- UltraSoft - Alpha - Scrum Meeting 4
Date: Apr 18th, 2020. 会议内容为 例行汇报. Scrum 情况汇报 进度情况 组员 负责 前两日进度 后两日任务 CookieLau PM 完成前后端交互规格的约定,了解前后端进 ...
- Spring Security 多过滤链的使用
Spring Security 多过滤链的使用 一.背景 二.需求 1.给客户端使用的api 2.给网站使用的api 三.实现方案 方案一: 方案二 四.实现 1.app 端 Spring Secur ...
- logstash处理多行日志-处理java堆栈日志
logstash处理多行日志-处理java堆栈日志 一.背景 二.需求 三.实现思路 1.分析日志 2.实现,编写pipeline文件 四.注意事项 五.参考文档 一.背景 在我们的java程序中,经 ...
- SpringBoot整合Prometheus
SpringBoot整合Prometheus 一.需求 二.实现步骤 1.引入jar包 2.application.prometheus文件配置 3.查看指标数据 4.接入到 prometheus 中 ...
- 2021.9.26考试总结[NOIP模拟62]
T1 set 从\(0\)到\(n\)前缀余数有\(n+1\)个,但只有\(n\)种取值,找到一样的两个输出区间即可. \(code:\) T1 #include<bits/stdc++.h&g ...
- Machine learning (6-Logistic Regression)
1.Classification However, 2.Hypothesis Representation Python code: import numpy as np def sigmoid(z) ...