java编程题:输入格式: 输入第一行为两个数 N,M(1≤N,M≤1000),表示群里有 N 人,活动有 M 条打卡记录。 接下来的 M 行,每行两个数 T i ,A i ,B i ,表示编号为 A i 的人在第 T
时间: 2024-02-21 07:01:57 浏览: 26
题目描述
现在有 $n$ 个人,在 $m$ 天内进行打卡活动。每个人每天最多打卡一次,如果当天已经打卡,则不能再次打卡。请你计算出所有人的打卡次数。
输入格式
输入第一行为两个数 $n,m$,表示群里有 $n$ 人,活动有 $m$ 条打卡记录。
接下来的 $m$ 行,每行两个数 $t_i,A_i,B_i$,表示编号为 $A_i$ 的人在第 $t_i$ 天进行了一次打卡。
输出格式
输出 $n$ 行,每行一个整数,表示对应编号的人打卡的次数。
样例输入
```
5 9
1 1 2
1 2 3
1 4 5
2 1 2
2 2 3
2 1 4
3 1 5
3 2 4
3 5 3
```
样例输出
```
2
2
1
1
1
```
算法1
(模拟) $O(nm)$
这道题与ACWING的第一个题目一样,但是有一些细节需要注意,比如:每个人每天最多打卡一次,如果当天已经打卡,则不能再次打卡。因此,我们维护一个二维数组 $st$,表示每个人在每天是否打卡。如果当天已经打卡,则不能再次打卡,直接跳过即可。
时间复杂度
遍历每个打卡记录,时间复杂度为 $O(m)$。
Java 代码