题目链接:https://www.luogu.com.cn/problem/P5594
题目大意:
求出每天要办几场比赛
输入:
第一行三个整数 n,m,k。
接下来 n 行,每行 m 个整数,第 i 行第 j 列的整数 ai,j 表示第 i 个人在接下来的 k 天中第 j 个有空的日子为第 ai,j 天。
思路:
在第K天的这个K数值,在每列是否出现,出现即举办场数加1(无需考虑同列重复出现,因为重复可以一起举行)
可以开一个二维数组,读取K值时,即记录在此列是否出现过
代码如下:(代码中的 x 即思路中的 K)
#include <iostream>
#include <cstring>
using namespace std;
int ans[1004][1004];
int main()
{
memset(ans, 0, sizeof(int) * 1004);
int n, m, k, i, j, x = 0, sum = 0;
cin >> n >> m >> k;
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
cin >> x;
ans[x][j] = 1;
}
}
for (i = 1; i <= k; ++i)
{
for (j = 0; j < m; ++j)
{
if (ans[i][j])
{
++sum;
}
}
cout << sum << ' ';
sum = 0;
}
cout << endl;
return 0;
}