6 条题解

  • 0
    @ 2025-4-11 2:13:32

    首先,本题的纯模拟代码:

    #include<cstdio>
    #include<iostream>
    #include<vector>
    #include<map>
    #include<cstring>
    #include<string>
    #include<array>
    #include<queue>
    #include<algorithm>
    #include<set>
    #include<cmath>
    #include<sstream>
    #include<unordered_set>
    #include<unordered_map>
    using namespace std;
    using i64=long long;
    using ui=unsigned int;
    //using i128=__int128;
    const int INF=1e9;
    //const i64 INT=F=1e18;
    //const int mod=998244353;
    const int mod=80112002;
    //const int N=1e9+7;
    void solve(){
        int n,k,q;
        cin>>n>>k>>q;
        vector<int>a(n+1);
        for(int i=1;i<=n;i++)a[i]=k;
        while(q--){
            int x;
            cin>>x;
            for(int i=1;i<=n;i++){
                if(i!=x)a[i]--;
            }
        }
        cout<<'\n';
        for(int i=1;i<=n;i++){
            if(a[i]>0)cout<<"Yes"<<'\n';
            else cout<<"No"<<'\n';
        }
    }
    int main(){
        ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
        int _=1;
        //cin>>_;
        while(_--)solve();
        return 0;
    }```
    

    优化思路:可以将q次查询的数,每一个数都加1,之后再将它们减去q次查询判断即可 代码:

    #include<cstdio>
    #include<iostream>
    #include<vector>
    #include<map>
    #include<cstring>
    #include<string>
    #include<array>
    #include<queue>
    #include<algorithm>
    #include<set>
    #include<cmath>
    #include<sstream>
    #include<unordered_set>
    #include<unordered_map>
    using namespace std;
    using i64=long long;
    using ui=unsigned int;
    //using i128=__int128;
    const int INF=1e9;
    //const i64 INT=F=1e18;
    //const int mod=998244353;
    const int mod=80112002;
    //const int N=1e9+7;
    void solve(){
        int n,k,q;
        cin>>n>>k>>q;
        int q1=q;
        vector<int>a(n+1);
        for(int i=1;i<=n;i++)a[i]=k;
        while(q--){
            int x;
            cin>>x;
            a[x]++;
        }
        for(int i=1;i<=n;i++){
            a[i]-=q1;
            if(a[i]>0)cout<<"Yes"<<'\n';
            else cout<<"No"<<'\n';
        }
    }
    int main(){
        ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
        int _=1;
        //cin>>_;
        while(_--)solve();
        return 0;
    }
    

    信息

    ID
    332
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    1878
    已通过
    512
    上传者