codeforces 659E New Reform

CodeForces 659E New Reform (图的遍历判环) Description Berland has n cities connected by m bidirectional roads. No road connects a city to itself, and each pair of cities is connected by no more than one road. It is not guaranteed that y 阅读详情

E. New Reform
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Berland has n cities connected by m bidirectional roads. No road connects a city to itself, and each pair of cities is connected by no more than one road. It is not guaranteed that you can get from any city to any other one, using only the existing roads.

The President of Berland decided to make changes to the road system and instructed the Ministry of Transport to make this reform. Now, each road should be unidirectional (only lead from one city to another).

In order not to cause great resentment among residents, the reform needs to be conducted so that there can be as few separate cities as possible. A city is considered separate, if no road leads into it, while it is allowed to have roads leading from this city.

Help the Ministry of Transport to find the minimum possible number of separate cities after the reform.

Input

The first line of the input contains two positive integers, n and m — the number of the cities and the number of roads in Berland (2 ≤ n ≤ 100 000, 1 ≤ m ≤ 100 000).

Next m lines contain the descriptions of the roads: the i-th road is determined by two distinct integers xi, yi (1 ≤ xi, yi ≤ n, xi ≠ yi), where xi and yi are the numbers of the cities connected by the i-th road.

It is guaranteed that there is no more than one road between each pair of cities, but it is not guaranteed that from any city you can get to any other one, using only roads.

Output

Print a single integer — the minimum number of separated cities after the reform.

Examples
input
4 3
2 1
1 3
4 3
output
1
input
5 5
2 1
1 3
2 3
2 5
4 3
output
0
input
6 5
1 2
2 3
4 5
4 6
5 6
output
1
Note

In the first sample the following road orientation is allowed: , , .

The second sample: , , , , .

The third sample: , , , , .



只要有一个环的连通分支,那么肯定可以做到环内的点都有入度,对于环外的点可以看成DFS遍历的生成树的节点,肯定可以有一条有向的通路,

通路上的点都有入度,这个连通分支可以做到最少为0个没有入度的点

如果没有环的连通分支,那么只需要找一个点作为生成树的根节点,那么就可以做到最少只有1个点没有入度



#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>

using namespace std;

const int maxn = 100000 + 10;
vector<int> G[maxn];
bool vis[maxn], flag;
int n, m, ans;

void dfs(int s, int pre) {
	vis[s] = true;
	for (int i = 0; i < G[s].size(); i++) {
		if (vis[G[s][i]] && G[s][i] != pre) {
			flag = true;
		}
		else if (!vis[G[s][i]]) {
			dfs(G[s][i], s);
		}
	}
}

int main()
{
	scanf("%d%d", &n, &m);
	for (int i = 0; i < m; i++) {
		int u, v;
		scanf("%d%d", &u, &v);
		G[u].push_back(v);
		G[v].push_back(u);
	}
	memset(vis, false, sizeof(vis));
	ans = 0;
	for (int i = 1; i <= n; i++) {
		if (!vis[i]) {
			flag = false;
			dfs(i, i);
			if (!flag) ans++;
		}
	}
	printf("%d\n", ans);
	return 0;
}





ANSYS Discovery 2023R1 入门:手把手教你玩转几何模型参数化(附历史追踪避坑指南) 本文详细介绍了ANSYS Discovery 2023R1中几何模型参数化建模的全流程,包括基础设置、参数化实战技巧及历史追踪避坑指南。通过Workbench集成和智能参数控制,工程师可以高效完成设计迭代,特别适合需要频繁调整几何模型的仿真场景。文章还提供了参数丢失的预防策略和工业应用实例,帮助用户快速掌握这一提升设计效率的核心技能。 阅读详情

相关推荐

Shader之——花草动画shader

今天 ,接到了个需求,花草的动画。谈到花草动画,立马就想到顶点动画,让顶点动起来就可以实现了。但是有个问题,所有的草都往一个方向运动,这个就麻烦了。因为在shader里没有随机这种概念,提到最多的是用一张噪声图来模拟。在网上搜索了一下,发现有更好的办法,就是用每个顶点到一个点的距离来控制动画的开始,毕竟每个顶点到同一个点的距离很少是一样的。 float dis = distance ...

baicaishisan的博客 2182

Codeforces 659E New Reform【DFS】

题目链接: http://codeforces.com/problemset/problem/659/E 题意: 给定n个点和m条双向边,将双向边改为单向边,问无法到达的顶点最少有多少个? 分析: 无法到达的话即入度为0。 DFS判断每一个连通块中是否存在环,如果存在环,就能保证环中每个点的入度都大于等于1。否则,有头有尾,头的入度为0。 代码: ...

An55511的博客 262

NVIDIA DGX Spark实战指南:从开箱到AI模型高效部署

本文详细介绍了NVIDIA DGX Spark的开箱体验、硬件架构及AI模型高效部署实战指南。从1 PetaFLOP算力的迷你设备到Grace Blackwell超级芯片的深度解析,再到五分钟快速上手指南和大模型部署技巧,帮助开发者充分利用这款全球最小AI超级计算机的性能优势。

weixin_29239279的博客 1363

Codeforces Round #346 (Div. 2) E. New Reform dfs

E. New Reform 题目连接: http://www.codeforces.com/contest/659/problem/E Description Berland has n cities connected by m bidirectional roads. No road connects a city to itself, and each pair of cities is c...

weixin_34255055的博客 160

保姆级教程:在Rockchip RK3588 SDK中,如何为你的新硬件板子创建第一个DTS文件

本文提供在Rockchip RK3588 SDK中为自定义硬件创建首个DTS文件的详细教程。通过分析DTS在RK3588开发中的角色、快速定位参考设计、实操步骤及调试验证方法,帮助开发者高效完成硬件板级配置,特别适合嵌入式Linux系统开发者参考。

weixin_28678831的博客 283

Android车载音频系统概览

官网有些部分的内容描述比较简单,对没有app、系统和底层开发经验,容易一眼扫过,没有留意到相关细节。 本节补充车载音频相关细节。

hwj的博客 785

Codeforces 659E 找环+(并查集/dfs)

题目: http://codeforces.com/problemset/problem/659/E 题意: 给你一个图,现在要你给这个图里面的边定方向,使得入度为0的点最少。 分析: 对于一个连通块而言,如果里面存在一个环,那么必然所有点的入度都可以大于等于1 否则的话,就存在一个点的入度为0。 并查集: #include <bits/stdc...

205

YOLO11涨点优化:Loss魔改 | WIoU (Wise-IoU) v3版本全面替换,基于动态非单调聚焦机制,让模型更聪明地学习

YOLOv11目标检测中的WIoU v3损失函数改进 本文探讨了YOLOv11目标检测模型中CIoU损失函数的局限性,并提出了WIoU v3改进方案。关键发现包括: CIoU的缺陷:在低质量样本(小目标/遮挡目标)上过度惩罚,导致模型优化方向偏离,小目标AP往往比大目标低30%左右。 WIoU v3的创新: 动态非单调聚焦机制:根据样本"离群度"智能分配梯度 让模型重点优化中等质量样本,减少对低质量样本的无效关注 采用指数移动平均来自适应调整质量评判标准 实际效果:WIoU v3在保持大

2601_95807009的博客 421

CodeForces - 659E New Reform (邻接表+dfs)

E. New Reform time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Berland has n cities connected by m bidirectional roads. No road con...

暖心的博客 283

R语言线性混合模型(LMM)分析

它将数据表示为固定效应和随机效应的线性组合,其中固定效应表示总体均值的影响,随机效应表示个体间的随机差异。LMM的目标是通过最大似然估计或最小二乘估计来估计模型中的固定效应和随机效应的参数。LMM结合了固定效应和随机效应,能够同时考虑个体间和个体内的变异,并适用于具有相关性的数据。目前在使用LMM的R语言包中,较常用的是lme4和nlme包,它们提供了丰富的函数和工具来拟合和分析线性混合模型。面板数据分析:LMM适用于分析具有面板结构的数据,如经济学中的面板数据或教育研究中的学生评估数据。

走向CTO的路上... 2964

Asterisk中MixMonitor之支持接通后录音

一、概述 当我们使用开源的IPPBX(比如Elastix-2.5/4.0或者ISSABEL-4.0/FreePBX)的时候Outbound和Inbound路由(RingGroup/FollowMe)中有一个Call Recording选项,其值包括:Allow、Record immediately、Record On Answer和Nerver。当选择为Record On Answer,其实就是MixMonitor自带一个b选项。 尽管Asterisk自带的MixMoni...

宽简厚重—博约 1156

Codeforces 659E New Reform 【DFS 求环】

题目链接:Codeforces 659E New Reform E. New Reform time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Berland has n cities connected by m bidirec

世界很大 557

月薪30k+的工业视觉,必备Java+YOLO技能(工业级落地全拆解)

30k+工业视觉岗的核心不是算法调参,而是用Java把YOLO落地到工业场景的能力——稳运行、能对接、可管理是高薪的核心壁垒;必备技能分五层:模型工业级适配、Java推理核心、SpringBoot后端、工业部署运维、场景适配,每层都要练到“能落地、能讲清、能避坑”;学习路径的核心是“实战驱动”:不要只学理论,从一个完整的工业项目(如锂电缺陷检测)入手,练完就能对标高薪岗。

2601_94871597的博客 524

codeforces 659 E New Reform

E. New Reform Berland has n cities connected by m bidirectional roads. No road connects a city to itself, and each pair of cities is connected by no more than one road. It is not guaranteed

哇咔咔 1154

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

并查集 - New Reform - CodeForces - 659E

并查集 - New Reform - CodeForces - 659E 题意: 给定一个n个点,m条边的无向图。给定一个n个点,m条边的无向图。给定一个n个点,m条边的无向图。 现要将所有边均改为有向边,若有某个点的入度为0,则认为该点被孤立了。现要将所有边均改为有向边,若有某个点的入度为0,则认为该点被孤立了。现要将所有边均改为有向边,若有某个点的入度为0,则认为该点被孤立了。 计算出最少会有多少个点被孤立。计算出最少会有多少个点被孤立。计算出最少会有多少个点被孤立。 首行输入n,m,表示n个点,m条边

njuptACMcxk的博客 251

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Codeforces 659E New Reform(并查集维护连通块)

题目链接 参考博客 题意 有一些双向边连接的点,现在要把每条边变成单向边,问最少有多少点没有入度 思路 1.可以建成一个有向图,可能有k个联通块,如果一个联通块没有环,就说明这个联通块,至少有一个城市单独的,因此就化成找联通块和环的问题 2.联通块的话可以用并查集来维护,然后用cir[maxn]数组来标记是否有环,如果这个联通块的根节点存在环,那么该联通块不存在单独的城市,如果不存在环的话ans+...

Novice_的博客 338

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

CodeForces 659E New Reform (并查集)

题意:n个点m条边,现在要把这些边变为单向,求没有边连入的最少的点。 题解:并查集 对于并查集,其实就是一棵树,从根节点往下,那么只有根节点没有边连入,但是对于自环来说,并不存在这样的点。所以只要判断一下在构成集合的时候是否存在自环即可,若存在自环,则将根节点标记。 最后答案就是不存在自环的集合数量。 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<string> #

gongyuandaye的博客 242

【Codeforces659E】New Reform【BFS】

【题目链接】 题意:给出一个n个点,m条边的无向图,现在你可以任意规定每个边的方向,使得这个图变为有向图,要求入度为0的点尽量少。 仔细分析一下就看出来了。 如果一个连通块里有n - 1条边,即一棵树,那么答案为1。 如果大于n - 1条边,那么可以在环上选一个起点规定方向,那么答案为0。 BFS一次就好了。 /* Footprints In The Blood Soaked

BraketBN 647

CodeForces - 659E New Reform(无向图找环)

题目链接:http://codeforces.com/problemset/problem/659/E 题意:给一个不一定连通的无向图,问将它变成有向图以后图中最少又多少个单独的点。其中单独的点指的是这个点的入度为0。 思路:就是找出题目给的图中有几个连通图,如果这个连通图有环,答案+1。所以,题目转化成了无向连通图中找环的问题。至于这个,可以用dfs或者并查集都可以做,我用两种方法都试了一下,效...

qq_43423395的博客 252

New Reform [CodeForces-659E]

题意 有n个点和m条不确定方向的边。 现在要求确定这m条不确定方向的边,使得入度为0的点的个数最少。 输出最小的个数。 分析 如果某个点保证入度&gt;0 那么可以把其它所有连向的点的入度都&gt;0 n,m&gt;=10^5不算特别大,感觉要么O(n)要么O(n log n) 可以一个一个联通块,考虑某一条边的方向,然后跑两次找较小值然后加入答案。 不过方案不能确定。 如...

Umbrella__的博客 396

CodeForces 659E New Reform

题意:给你一个无向图,现在要求你把边改成有向的, 使得入度为0的点最少,输出有多少个点入度为0 思路:脑补一波结论,如果有环的话显然没有点入度为0,其余则至少有一个点入度为0,然后就DFS一波就可以了 #include #include #include #include #include #include #include #include #include #in

围巾的ACM博客 1220

CodeForces 659E New Reform (DFS)

http://codeforces.com/contest/659/problem/E 题意:n个点中存在m条无向边,如果在这m条边加上方向,方向唯一,但是可以是任意的,求入度为0的点的个数最多是多少 思路:循环搜索每一个点,如果存在环,则环内的点入度都不为0,环外的点如果能由环内的点到达,则入度不为0 #include #include #include #include #i

大太阳 831

[图中找环] Codeforces 659E New Reform

New Reform time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Berland hasncities connected bymbidirectional ro...

dixiangee374493的博客 182
上一篇: hdu5676 ztr loves lucky numbers DFS+二分
下一篇: PAT (Advanced Level) L1-6. 连续因子 for循环暴力
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值