6 条题解

  • 2
    @ 2025-4-11 9:32:16
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=1e6+10;
    int a[N];
    signed main()
    {
    	int n,k,q;
    	cin>>n>>k>>q;
    	for(int i=1;i<=n;i++)a[i]=k-q;
    	while(q--)
    	{
    		int x;
    		cin>>x;
    		a[x]++;
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(a[i]>0)cout<<"Yes"<<'\n';
    		else cout<<"No"<<'\n';
    	}
    }
    

    先让大家都扣q分如果你回答正确了那么你就多扣了分,給它加回去即可

    • 0
      @ 2025-4-11 20:19:09

      s = list(map(int, input().split())) n, k, q = s[0], s[1], s[2] a_list = [int(input()) for _ in range(q)]

      count_dict = {} for a in a_list: if a in count_dict: count_dict[a] += 1 else: count_dict[a] = 1

      for i in range(1, n + 1): values = k - q if i in count_dict: values += count_dict[i] result = 'Yes' if values > 0 else 'No' print(result)

    • 0
      @ 2025-4-11 16:35:49

      #include <bits/stdc++.h>

      using namespace std; int t=1; const int N=1e5+10,INF=0x3f3f3f3f; int a[N];

      void solve() { int n,k,q; cin>>n>>k>>q; for(int i=1;i<=n;i++) a[i]=k-q; for(int i=1;i<=q;i++) { int md; cin>>md; a[md]++; }

      for(int i=1;i<=n;i++)
      {
      	if(a[i]>0)
      	cout<<"Yes"<<endl;
      	else
      	cout<<"No"<<endl; 
      }
      

      } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); while(t--) { solve(); }

      return 0;
      

      }

      • 0
        @ 2025-4-11 16:01:59

        #include<bits/stdc++.h> using namespace std;

        long long n,a[100006],k,q,d; int main(){ cin>>n>>k>>q; for(int i=1;i<=q;i++){ cin>>d; a[d]++; } for(int i=1;i<=n;i++){ if(k-(q-a[i])>0)cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }

        • 0
          @ 2025-4-11 12:09:38
          #include<bits/stdc++.h>
          using namespace std;
          
          int t,N,Q,K;
          
          void callFinalre(vector<int> &re) {
          	for(int i=1;i<=N;i++)
          	{
          		if(re[i] > 0)  cout<<"Yes"<<endl;
          		else{
          			cout<<"No"<<endl;
          		}		
          	}
          }
          
          int main()
          {
          	cin>>N>>K>>Q;
          	
          	vector<int> re(N+1,K-Q);
          	
          	for(int i=0;i<Q;i++){
          		cin>>t;
          		re[t]++;	
          	}
          	
          	callFinalre(re);
          	return 0;
          }
          
          • 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;
            }
            
            • 1

            信息

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