题解:P14340 [JOISC 2019] 考试 / Examination

· · 题解

题意

给定 n 个带有参数 s,t 的学生,以及 q 次询问,查询这些学生中满足 s\ge{}a\land{}t\ge{}b\land{}s+t\ge{}c 的学生的数量。

解法

由于每次教授都要查询所有学生,所以这很显然是考察循环结构的应用,我们使用枚举法就可以解决。

AC Code

#include<bits/stdc++.h>
using namespace std;
const int N=2e5;
int n,q,s[N],t[N],a,b,c,ans;
int main(){
    cin>>n>>q;
    for(int i=1;i<=n;i++) cin>>s[i]>>t[i];
    for(int i=1;i<=q;i++){
        cin>>a>>b>>c;
        ans=0;
        for(int j=1;j<=n;j++) ans+=s[j]>=a&t[j]>=b&s[j]+t[j]>=c;
        cout<<ans<<endl;
    }
    return 0;
}

AC 记录。

复杂度分析

时间复杂度 O(QN),空间复杂度 O(N)