三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

简单图判断

简单图判断

题目描述
给定一个包含
n
n 个顶点和
m
m 条边的无向图。顶点编号为
1
,
2
,
.
.
.
,
n
1,2,...,n ,第
i
i 条边连接顶点
a
i
a
i


b
i
b
i

,判断这个图是否为简单图 (无重边且无自环) ,如果是简单图,则输出 yes,如果不是简单图,则输出重边的数量和自环的数量。

输入格式
第一行两个整数
n
n 和
m
m 。

接下来
m
m 行,每行两个整数
a
i
a
i


b
i
b
i

输出格式
如果是简单图,输出yes

如果不是简单图,第一行输出重边的数量,第二行输出自环的数量

这一题不用遍历啥的

#include<bits/stdc++.h> using namespace std; int a[3005][3005]; int main() { // freopen("graph.in","r",stdin); // freopen("graph.out","w",stdout); int n,m,x,y,cb=0,zh=0; cin >> n >> m; for(int i=1;i<=m;i++) { cin >> x >> y; if(a[x][y]>=1||a[y][x]>=1)cb++; else if(x==y)zh++; else { a[x][y]++; a[y][x]++; } } if(cb==0&&zh==0)cout <<"yes"; else cout<< cb<<endl<<zh; return 0; }
← 返回列表