Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) A. Contest for Robots(数学)

题意:

n 道题,2 个答题者,已知二者的做题情况,你是受贿裁判,可以给每题指定分值(≥1),求甲乙分数(甲>乙)相差最小时最大分值的最小值。

思路:

统计只有甲或乙做出的题目数。

加一取下整判同余:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;cin>>n;
    int a[n],b[n];
    for(int &i:a) cin>>i;
    for(int &i:b) cin>>i;
    int cA=0,cB=1;
    for(int i=0;i<n;i++){
        if(a[i]&&(!b[i])) ++cA;
        if(b[i]&&(!a[i])) ++cB;
    }
    if(cA) cout<<cB/cA+(cB%cA!=0);
    else cout<<"-1";
    return 0;
}

取下整加一:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;cin>>n;
    int a[n],b[n];
    for(int &i:a) cin>>i;
    for(int &i:b) cin>>i;
    int cA=0,cB=0;
    for(int i=0;i<n;i++){
        if(a[i]&&(!b[i])) ++cA;
        if(b[i]&&(!a[i])) ++cB;
    }
    if(cA) cout<<cB/cA+1;
    else cout<<"-1";
    return 0;
}
原文地址:https://www.cnblogs.com/Kanoon/p/12519883.html