题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2935

考察欧拉回路性质的题目呢;

TJ:https://blog.csdn.net/u014609452/article/details/53705451

首先按照题目给出的点对连边,发现能一连串输出的数组成一条路径;

那么答案就是图的最小路径覆盖的点数,可以考虑欧拉回路;

连通块之间分别考虑,如果连通块存在欧拉回路,那么覆盖它需要边数+1的点;

如果不存在欧拉回路,那么加上 度数绝对值和/2 条边构成欧拉回路,然后再任意删去一条,形成欧拉路,答案就是边数;

找连通块用并查集即可。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const maxn=;
int n=,m,k,sum,ans,fa[maxn],deg[maxn];
bool vis[maxn],tag[maxn];
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
int main()
{
scanf("%d",&m);
for(int i=;i<=n;i++)fa[i]=i;
for(int i=,x,y;i<=m;i++)
{
scanf("%d%d",&x,&y);
deg[x]++; deg[y]--; vis[x]=; vis[y]=;
fa[find(x)]=find(y);
}
for(int i=;i<=n;i++)
if(vis[i]&&deg[i])tag[find(i)]=,sum+=(deg[i]>)?deg[i]:-deg[i];
for(int i=;i<=n;i++)
if(vis[i]&&find(i)==i&&!tag[i])k++;//此连通块没有度数非0的点,也就是存在欧拉回路,+1
ans=k+sum/+m;
printf("%d",ans);
return ;
}

bzoj2935 [Poi1999]原始生物——欧拉回路的更多相关文章

  1. BZOJ2935: [Poi1999]原始生物(欧拉回路)

    2935: [Poi1999]原始生物 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 150  Solved: 71[Submit][Status][D ...

  2. bzoj 2935 [Poi1999]原始生物——欧拉回路思路!

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2935 有向图用最小的路径(==总点数最少)覆盖所有边. 完了完了我居然连1999年的题都做不 ...

  3. 【bzoj2935】[Poi1999]原始生物

    2935: [Poi1999]原始生物 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 145  Solved: 71[Submit][Status][D ...

  4. 【刷题】BZOJ 2935 [Poi1999]原始生物

    Description 原始生物的遗传密码是一个自然数的序列K=(a1,...,an).原始生物的特征是指在遗传密码中连续出现的数对(l,r),即存在自然数i使得l=ai且r=ai+1.在原始生物的遗 ...

  5. BZOJ 2935/ Poi 1999 原始生物

    [bzoj2935][Poi1999]原始生物   2935: [Poi1999]原始生物 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 145  So ...

  6. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  7. [POI1999][LOJ10112]原始生物

    典型的有向图K笔画的问题 最后答案就是n+1-1+k 1笔画有一点入度比出度少1 k笔画则统计入度比出度少的点中所有少的总和 #include<bits/stdc++.h> using n ...

  8. ACM/ICPC 之 混合图的欧拉回路判定-网络流(POJ1637)

    //网络流判定混合图欧拉回路 //通过网络流使得各点的出入度相同则possible,否则impossible //残留网络的权值为可改变方向的次数,即n个双向边则有n次 //Time:157Ms Me ...

  9. [poj2337]求字典序最小欧拉回路

    注意:找出一条欧拉回路,与判定这个图能不能一笔联通...是不同的概念 c++奇怪的编译规则...生不如死啊... string怎么用啊...cincout来救? 可以直接.length()我也是长见识 ...

随机推荐

  1. codeforces_738D

    D. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  2. HDU_1087_Super Jumping! Jumping! Jumping!_dp

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  3. view.getParent()与view.getRootView()

    顾名思义,getParent就是获取view的父亲节点,而getRootView是寻找当前的view层次中处在最顶层的view,可理解为找出该view实例所在的view层次的根view. 如果这个vi ...

  4. 为什么有些异常throw出去需要在函数头用throws声明,一些就不用

    throw new IllegalStateException(".");不用在函数头声明throws IllegalStateExceptionthrow new IOExcep ...

  5. C# 执行sql语句批量更新

    int x = db.Database.ExecuteSqlCommand(string.Format("update T_Pension SET UnitType = '{0}' WHER ...

  6. 浅谈SOCKS5代理与HTTP代理的应用区别

    [1]什么是SOCKS5协议. SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递.SOCKS是"Sockets”的缩写. 当防火墙后的客户端要访问外部的服务器时,就 ...

  7. Sping——使用注解创建切面

    为讲解例子,我们首先定义一个Performance接口: package aoptest; public interface Performance { public void perform(); ...

  8. golang bytes 包

    类型 []byte 的切片十分常见,Go 语言有一个 bytes 包专门用来解决这种类型的操作方法. bytes 包和字符串包十分类似.而且它还包含一个十分有用的类型 Buffer: import & ...

  9. flutter 环境搭建

    环境: ladder什么的是必不可少的 win10 + Idea 2019.1.13 + Genymotion 2.12 基本可以在模拟器中运行项目,还有些许小问题,但是可以看到效果了 基本流程 下载 ...

  10. 该页必须使用安全性较高的Web 浏览器查看

    当用https访问某个网站时,IE提醒“该页必须使用安全性较高的Web 浏览器查看” 您要访问的资源使用了128位版本的“安全套接层(SSL)” 安全保护.要查看该资源,您需要使用支持该版本的SSL浏 ...