P8254的题解

osfly / 2023-08-25 / 原文

真没啥好说的,纯模拟

#include<cstdio>
int n,m;
int q[2000][2000];
int a[2000];
int ans;
int cnt;
inline int read()
{
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
	{
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
	{
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}
int main()
{
	n=read(),m=read();
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++) q[i][j]=read();
	for(int i=1;i<=n;i++)
	{
		int cnt0=0,cnt1=0;
		for(int j=1;j<=m;j++)
		{
			if(q[j][i]==0) cnt0++;
			else cnt1++;
		}
		if(cnt0>cnt1) a[i]=0;
		else a[i]=1;
	}
	for(int i=1;i<=n;i++)
	{
		ans=read();
		if(ans==a[i]) cnt++;
	}
	printf("%d",cnt);
	return 0;
}

\(q[i][j]\)表示第\(i\)位大臣第\(j\)题答案

\(a[i]\)表示预测第\(i\)题的答案

接下来边读入边判断边统计就行了