第一次参加,蒟蒻只会暴力QAQ~
到最后一共也只有140分
题目描述
智慧之王 Kri 统治着一座王国。
这天 Kri 决定举行一场比赛,来检验自己大臣的智慧。
比赛由 $n$ 道判断题组成,有 $m$ 位大臣参加。现在你已经知道了所有大臣的答题情况,但尚未拿到答案,于是你决定先行预测。
具体来说,对于第 $i$ 道题,有 $x$ 个大臣选对, $y$ 个大臣选错(显然有 $x+y=m$ ),如果 $x > y$ ,那么你预测这题答案为对,否则为错。为了方便,我们保证 m 是奇数。
在统计完成后,你拿到了答案,你想知道通过你的预测方式你最后有几道题预测正确。
输入样例1
3 3
1 0 1
0 1 1
0 1 0
1 1 1
输出样例1
2
输入样例2
6 5
1 0 1 1 1 0
0 1 0 1 1 1
0 0 1 0 1 0
1 0 1 0 1 0
0 1 0 1 0 0
1 0 1 0 1 0
输出样例2
4
算法1
(暴力枚举) $O(n^2)$
输入时累计一下第 $j$ 道题有几个人对,几个人错,最后把做对的人数与做错的人数对比得出预判,再与正确答案比较。
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int a[1000][1000];
int main()
{
int n, m;
cin>>n>>m;
int x[1000] = {0}, y[1000] = {0};
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cin >> a[i][j]; //代表第i个大臣第j题的答题情况
if (a[i][j] == 0)
x[j]++; //第j道题有几个人错
else
y[j]++; //第j道题有几个人对
}
}
int c[1000] = {0};
for (int i = 0; i < n; i++)
if (x[i] < y[i]) //对比结果,判断答案
c[i] = 1;
int corret[1000];
for (int i = 0; i < n; i++)
cin >> corret[i];
int ans = 0;
for (int i = 0; i < n; i++)
if (c[i] == corret[i]) //累计判断对的题目数
ans++;
cout << ans << endl;
return 0;
}
很棒qwq
你可以用 $\LaTeX$ 来写公式,这样你的题解更好看呢
谢谢
求支持一下谢谢,这是我第一次写题解