先考虑一个联通块,可以发现这个联通快内不会存在两个偶数的点
证明:如果存在,那么这两个点的某一条路径上的边全部反过来,可以使答案+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 }

最新文章

  1. 单点登录改进版-使用ajax分发cookie避免重定向轮询
  2. ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
  3. LintCode A + B Problem
  4. POJ 3617 Best Cow Line(最佳奶牛队伍)
  5. java枚举类型使用笔记
  6. Effective C# Chapter1-Language Elements
  7. WebService学习笔记
  8. C# 多线程编程 ThreadStart ParameterizedThreadStart
  9. HDU 4444 Walk (离散化建图+BFS+记忆化搜索) 绝对经典
  10. 【IPC通信】基于管道的popen和pclose函数
  11. print、println与printf之间的区别
  12. MyBatis动态创建表
  13. 使用 &lt;embed&gt; 标签显示 flash文件(swf)格式 ,如何设置 width 和 height 宽度,高度.
  14. centos 7.4安装python3.7.4
  15. angularjs checkbox
  16. To handling editor letter
  17. [译]ElasticSearch vs. Solr
  18. Oracle数据库版本10.2.0.1升级到10.2.0.3(转)
  19. 996ICU的感悟
  20. SpringMVC文件上传基础

热门文章

  1. C#开发BIMFACE系列43 服务端API之图纸拆分
  2. 几何 三垂模型 及 正方形 及 弦图 及 jio拉jio模型 及 中位线
  3. xshell连接vmware系统完整版
  4. 01_vue实例_数据_方法
  5. SpringBoot入门07-Thymeleaf中显示ajax请求到的数据
  6. 【UE4 插件】UnrealEnginePython 源码版编译、项目打包注意事项
  7. [BUAA]起点 软工第一次作业-热身
  8. 轻量级 Java 基础开发框架,Solon &amp; Solon Cloud 1.5.52 发布
  9. STM32定时器学习---基本定时器
  10. Asp.Net 熟悉 Spring