【模拟】模拟题

题目在此:https://www.luogu.com.cn/problem/P5594
模拟入门题,希望自己每每做一题都会有收获,也不要一直就是不会做就去看题解,加油。
话说回来,这道题目想想真的很水,题目数据int足够了,其实就是在考察数组,那我们重点就是找到数组下标,值与题目中的条件挂钩就好了。我们可以建立一个二维数组p[i][j]来代表第i天做的是第j题,若p[i][j]==1,则今天有j题,反之无。再用另一个数组来遍历二维数组p,记录某天的题目数,搞定。

#include 
#include 
#include 
#include 
#include 
#define ll long long
#define inf 0x3f3f3f3f
#define maxn 1e5+10
using namespace std;
int p[1010][1010];
int a[1010][1010];
int day[1010];
int main()
{
    int n,m,k,i,j;
    scanf("%d%d%d",&n,&m,&k);
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
        {
            scanf("%d",&a[i][j]);
            p[a[i][j]][j]=1;
        }
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            if(p[a[i][j]][j])
              {
                    day[a[i][j]]++;
                    p[a[i][j]][j]=0;
              }
        }
    }
    for(i=1;i<=k;i++)
        printf("%d ",day[i]);
    return 0;
}

有什么好的建议,可以告诉我呀!(^^)

你可能感兴趣的:(模拟)