离散数学习题篇——图的基本概念——结点的度
题⽬:
⽆向图,计算图的最⼤度、最⼩度。
图的最⼤度指的是图中所有结点的度的最⼤值,图的最⼩度指的是图中所有结点的度的最⼩值。
输⼊格式:
第⼀⾏是⼀个整数V,表⽰图有V个结点,结点编号0,1,2,…,V−1。
(1≤V≤10,000) 第⼆⾏是⼀个整数E,表⽰图中有E条边。(0≤E≤100,000)
接下来有E⾏,每⾏表⽰⼀条边,⽤空格分隔的两个整数表⽰边的两个端点。
输出格式:
两⾏,每⾏⼀个整数,分别表⽰图的最⼤度、最⼩度。
题解:
数学数组的定义是什么这个题简直就是基础到不能更基础的⼀道⽔题。
⾸先是了解什么是节点的度。⽆向图⾥,节点的度就是节点连接的边的个数。有向图⾥,节点的度分了⼊度和出度,⼊度就是进⼊该节点的边的个数,出度就是离开这个节点的边的个数。
题⽬⼀开始就说了⽆向图,所以我们只需要记录每个点的边的个数就可以了。每⼀条输⼊的边都会让两个点的度数加⼀,最后出最⼤值和最⼩直就⾏了。
#include<bits/stdc++.h>
using namespace std;
int main(int argc,char const*argv[])
{
//开⼀个动态数组
vector<int> node;
//n个节点,m条边
int n, m;
cin >> n >> m;
//将数组⼤⼩设置为n
//将数组中每个元素都⽤0填充
fill(node.begin(), d(),0);
while(m--)
{
//输⼊边
int u, v;
cin >> u >> v;
/
/让边的端点度数加⼀
node[u]++;
node[v]++;
}
//出最⼤值和最⼩值
cout <<*max_element(node.begin(), d())<< endl;
cout <<*min_element(node.begin(), d());
return0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论