B3948 题解
Source & Knowledge
2024 年 3 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
给定一些多选题的答案和作答,加入你从第
题目分析
首先,我们要考虑如何计算得分。
先判断没有作答的情况。
考虑将作答设为
一个完全正确的答案数组一定全部为
我们可以写出代码:
int check(int a[4],int b[4]){
int c[4],sum=0;
for(int i=0;i<4;i++)sum+=b[i];
if(sum==0)return 0;
for(int i=0;i<4;i++)c[i]=a[i]+b[i];
for(int i=0;i<4;i++)
if(c[i]==-1)return 0;
for(int i=0;i<4;i++)
if(c[i]==1)return 3;
return 6;
}
然后我们枚举每个起点,按照题意模拟判断即可。
std::cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<4;j++)std::cin>>a[i][j];
for(int i=0;i<n;i++)
for(int j=0;j<4;j++)std::cin>>b[i][j],b[i][j]*=-1;
for(int i=0;i<n;i++){
int ans=0;
for(int j=0;j<n;j++)
ans+=check(a[(i+j)%n],b[j]);
std::cout<<ans<<" \n"[i==n-1];
}
视频讲解
完整代码见视频题解