[NOI Online 2022 入门组] 王国比赛
题目背景
经过管理员的考虑,我们打算将民间数据单独存放在最后一个 Subtask 中。这些测试点分数均为 0 分,但是没有通过其中的任何测试点将会视为此题不通过。
民间数据提供者:@一扶苏一。
题目描述
智慧之王 Kri 统治着一座王国。
这天 Kri 决定举行一场比赛,来检验自己大臣的智慧。
比赛由 n n n 道判断题组成,有 m m m 位大臣参加。现在你已经知道了所有大臣的答题情况,但尚未拿到答案,于是你决定先行预测。
具体来说,对于第 i i i 道题,有 x x x 个大臣选对, y y y 个大臣选错(显然有 x + y = m x+y=m x+y=m),如果 x > y x>y x>y,那么你预测这题答案为对,否则为错。为了方便,我们保证 m m m 是奇数。
在统计完成后,你拿到了答案,你想知道通过你的预测方式你最后有几道题预测正确。
输入格式
第一行两个正整数 n , m n,m n,m,保证 m m m 是奇数。
接下来 m m m 行,每行 n n n 个整数,第 i i i 行第 j j j 个整数代表第 i i i 位大臣对第 j j j 道题的答案, 1 1 1 表示他选对, 0 0 0 表示他选错。
接下来 1 1 1 行 n n n 个整数, 表示比赛答案,第 i i i 个数 b i b_i bi 若为 1 1 1 表示第 i i i 道题答案是对,若为 0 0 0 表示答案是错。
输出格式
输出一个整数,表示你最后有几题预测正确。
样例 #1
样例输入 #1
3 3
1 0 1
0 1 1
0 1 0
1 1 1
样例输出 #1
2
样例 #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
样例 #3
样例输入 #3
见附件中的 kingdom3.in
样例输出 #3
见附件中的 kingdom3.out
提示说明
【样例 1 解释】
- 第一题 x = 1 , y = 2 x=1,y=2 x=1,y=2 你预测答案为错(即 0 0 0),实际答案为1,预测错误。
- 第二题 x = 2 , y = 1 x=2,y=1 x=2,y=1 你预测答案为对(即 1 1 1),实际答案为1,预测正确。
- 第三题 x = 2 , y = 1 x=2,y=1 x=2,y=1 你预测答案为对(即 1 1 1),实际答案为1,预测正确。
所以预测正确的题数为 2 2 2。
【数据范围】
对于 20 % 20\% 20% 的数据, n ≤ 5 n\le 5 n≤5, m = 1 m=1 m=1。
对于 50 % 50\% 50% 的数据, n ≤ 10 n\le 10 n≤10, m ≤ 10 m\le 10 m≤10。
对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 1000 1 \le n\le 1000 1≤n≤1000, 1 ≤ m ≤ 1000 1 \le m\le 1000 1≤m≤1000, m m m 为奇数。
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e3+5;
ll cnt[N];
int main()
{
ll n,m;
cin>>n>>m;
for(ll i=1;i<=m;i++)
for(ll j=1;j<=n;j++)
{
ll x;
cin>>x;
cnt[j]+=x;
}
ll ans=0;
for(ll i=1;i<=n;i++)
{
ll a;
cin>>a;
if(a==1&&cnt[i]*2>m) ans++;
if(a==0&&cnt[i]*2<m) ans++;
}
cout<<ans<<endl;
return 0;
}
标签:le,比赛,ll,样例,hi,答案,include,王国,1000
From: https://blog.csdn.net/2301_80065123/article/details/139704172