首先,本题的纯模拟代码:
#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;
}
```
#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;
}
```
0 回复
0 转发
0 喜欢
1 阅读



