问题 D: 入度和出度 —— 菜姬的算法小课堂

问题 D: 入度和出度 —— 菜姬的算法小课堂

时间限制: 1 Sec  内存限制: 64 MB
提交: 333  解决: 167
[状态] [讨论版] [提交] [命题人:]
题目描述

菜姬的算法小课堂开课了!!!今天,菜姬老师给大家讲的内容是 "入度和出度"。

"入度和出度" 的定义:节点(顶点)的 入度 是指进入该节点(顶点)的边的条数; 节点(顶点)的 出度 是指从该节点(顶点)出发的边的条数

"入度和出度" 是图论题面中经常会用到的知识,今天,菜姬老师想带领大家解决一个最基本的问题:"如何统计入度和出度"

要解决这个问题我们还需要先学习一个新概念 "有向边",毕竟图论问题都是以点和边为基础构造的。那么,什么是有向边呢?

"有向边"的定义:有向边是图中的一种边,它具有方向。每条有向边连接两个顶点,并且从一个顶点指向另一个顶点。在有向图中,每条边都是有方向的,因此我们可以将其表示为一个有序对 (u, v),其中 u 是起始点,v 是终端点。

知道了这两个概念,我们也就可以开始解决这个基础的问题了。那么,现在让我们丰富一下题面从而方便大家阅读这个问题吧。

现在这里存在 n 个节点,节点和节点之间可能具有边(有向边),接下来给我们 m 条边,边的形式以有序对 (u, v) 给出。我们需要统计每个点的入度和出度,之后统一输出。



输入

第一行输入两个整数 n, m ( 1 ≤ n, m ≤ 105 )

接下来 m 行每行给定两个值 u, v ( 1 ≤ u, v ≤ n ) 分别代表端点编号

数据不存在自环

输出

输出 n 行数据,输出每个端点的出度和入度,输出格式如样例。

(若该点无入度或出度请输出数字 0)

样例输入 Copy
5 3
1 2
2 3
3 4
样例输出 Copy
1 0
1 1
1 1
0 1
0 0
提示

对于 (1, 2) 边,该边是由节点 1 到节点 2 的一条有向边,那么点 1 的出度加 1,点 2 的入度加 1。其它边同理。

本题实现方式并不困难,难点在于对新概念的快速学习和理解。编程的学习就是这样,如果你学习吸收新知识新概念的能力很弱,就很难解决很多问题,哪怕这些问题的实现方式其实很简单。当然如果并不理解本题请不要气馁,对于新手来说编程思维和高中时的学习思维还是有很大差距,一时半会儿没转变过来很正常(大家智商其实都大差不差哦),但是请不要放弃,努力培养自己的编程思维是很有必要的,从0到1很难,从1到2就不会那么困难了。所以,加油吧,同学!!!