专栏文章

ABC393C题解

AT_abc393_c题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miq8t8js
此快照首次捕获于
2025/12/04 00:50
3 个月前
此快照最后确认于
2025/12/04 00:50
3 个月前
查看原文

题意

给你一张无向图,问最少删几条边能使它变成一张简单图。

思路

简单图指的是没有重边和自环的图,所以在输入 mm 条边的时候,判断一下当前边是否为重边或者自环。
自环非常简单,即 u=vu=v 的情况。重边的话用一个 map 记录,因为是无向边,所以当有 uuvv 的边时也要标记从 vvuu 的边。

AC Code

CPP
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,m,ans=0,u,v;
map<int,bool> vis[N];
int main(){
	ios::sync_with_stdio(0),cin.tie(0);
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>u>>v;
		if(u==v||vis[u][v]||vis[v][u]) ans++;
		vis[u][v]=1,vis[v][u]=1;
	}
	cout<<ans;
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...