bzoj2935 [Poi1999]原始生物——欧拉回路
题目: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]&°[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]原始生物——欧拉回路的更多相关文章
- BZOJ2935: [Poi1999]原始生物(欧拉回路)
2935: [Poi1999]原始生物 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 150 Solved: 71[Submit][Status][D ...
- bzoj 2935 [Poi1999]原始生物——欧拉回路思路!
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2935 有向图用最小的路径(==总点数最少)覆盖所有边. 完了完了我居然连1999年的题都做不 ...
- 【bzoj2935】[Poi1999]原始生物
2935: [Poi1999]原始生物 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 145 Solved: 71[Submit][Status][D ...
- 【刷题】BZOJ 2935 [Poi1999]原始生物
Description 原始生物的遗传密码是一个自然数的序列K=(a1,...,an).原始生物的特征是指在遗传密码中连续出现的数对(l,r),即存在自然数i使得l=ai且r=ai+1.在原始生物的遗 ...
- BZOJ 2935/ Poi 1999 原始生物
[bzoj2935][Poi1999]原始生物 2935: [Poi1999]原始生物 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 145 So ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- [POI1999][LOJ10112]原始生物
典型的有向图K笔画的问题 最后答案就是n+1-1+k 1笔画有一点入度比出度少1 k笔画则统计入度比出度少的点中所有少的总和 #include<bits/stdc++.h> using n ...
- ACM/ICPC 之 混合图的欧拉回路判定-网络流(POJ1637)
//网络流判定混合图欧拉回路 //通过网络流使得各点的出入度相同则possible,否则impossible //残留网络的权值为可改变方向的次数,即n个双向边则有n次 //Time:157Ms Me ...
- [poj2337]求字典序最小欧拉回路
注意:找出一条欧拉回路,与判定这个图能不能一笔联通...是不同的概念 c++奇怪的编译规则...生不如死啊... string怎么用啊...cincout来救? 可以直接.length()我也是长见识 ...
随机推荐
- 移动web——bootstrap如何修改原组件
基本介绍 1.bootstrap提供了丰富的组件,但是有时候我们不仅要删除不必要的标签,还需要修改里面的样式 2.我们建议若是修改样式那么最好将源样式从css中拷贝出来,名字换掉,然后修改具体样式,这 ...
- JS——if条件判断
现在只说特殊情况: 1.一个变量,例如n1=null <script> var n1 = null; alert(n1);/*弹窗的值为null*/ if (n1 == null) {/* ...
- 批量注释LOG
sed -i "s/LOG/\/\/ LOG/g" `grep LOG\(TRACE\) -rl .`
- javascript常用功能函数
特殊字符转义:将<, >, &, “进行转义 function escape(str){ return str.replace(/[<>"&]/g,f ...
- Stanford coursera Andrew Ng 机器学习课程第二周总结(附Exercise 1)
Exercise 1:Linear Regression---实现一个线性回归 重要公式 1.h(θ)函数 2.J(θ)函数 思考一下,在matlab里面怎么表达?如下: 原理如下:(如果你懂了这道作 ...
- php字符串无乱码截取函数封装
/** * * 中英混合字符串长度判断 * @param unknown_type $str * @param unknown_type $charset */ function strLength( ...
- iDRAC RAC0218 最大会话限制
用ssh工具登陆IDRAC远程管理ip地址: /admin1-> racadm racreset RAC reset operation initated successfully. It m ...
- 第一节:setTimeout和setInterval定时器
区别: setInterval函数的用法与setTimeout完全一致,区别仅仅在于setInterval指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行. 取消定时器:(clearTim ...
- 利用shell脚本去备份幸运28源码搭建下载所指定的数据库
#! /bin/bash幸运28源码搭建下载Q[115288oo99]logintool=/home/yx/server/mysql/mysql/bin/mysqldumptool=/home/yx/ ...
- 洛谷 P1943 LocalMaxima_NOI导刊2009提高(1)
我们先考虑第i大数,比它大的数有(n-i)个,显然要使i是Local Maxima,比它大的数必须放在它后面,那么它是Local Maxima的期望是: 那么n个数中Local Maxima个数的期望 ...