题解分享
题解分享简介
天穹之塔 - 题解
```
#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
0
2
3
天穹之塔 - 题解
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
0
0
3
天穹之塔 - 题解
include
using namespace std;
long long n,a[100006],k,q,d;
int main(){
cin>>n>>k>>q;
for(int i=1;i
>d;
a[d]++;
}
for(int i=1;i
0)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
查看全文
0
0
0
3
天穹之塔 - 题解
```
#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
0
0
3
天穹之塔 - 题解
include
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
>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
0
0
2
天穹之塔 - 题解
首先,本题的纯模拟代码:
```
#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
include
include
include
include
include
include
include
include
include
include
include
include
include
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
a(n+1);
for(int i=1;i
>x;
a[x]++;
}
for(int i=1;i
0)cout
>_;
while(_--)solve();
return 0;
}
```
查看全文
0
0
0
2



