本学校高一同学又迎来了一次考试。
本蒟蒻身为验题人,自然要写一个题解来帮助大家(骗访问量)啦。

T1:
显然满足条件的数mod m相同,这样我们开m个vector把mod m相同的数放进同一个vector里。能否有解判断size即可。
答案要求字典序最小,我们比较这些vector的第一个元素(最小的),显然它们两两不可能相同,所以判断它们的大小即可比较字典序。
(话说这题后70分数据是我造的,前面30分队长说有两个"No",某人排序反了只有20,说明我还把他WA了,嗯,没出锅)
代码:

 1 #include<bits/stdc++.h>
 2 const int maxe=1e6+1e2;
 3 
 4 std::vector<int> v[maxe];
 5 
 6 int main() {
 7     static int n,m,k,t,sel=-1;
 8     scanf("%d%d%d",&n,&k,&m) , assert(m&&m<=1e6);
 9     while(n--) scanf("%d",&t) , v[t%m].push_back(t);
10     for(int i=0;i<m;i++) {
11         if( v[i].size() ) std::sort(v[i].begin(),v[i].end() );
12         if( (signed) v[i].size() >= k && ( !~sel || *v[sel].begin() > *v[i].begin() ) ) sel = i;
13     }
14     if( !~sel ) return puts("No"),0;
15     puts("Yes");
16     for(int i=0;i<k;i++) printf("%d%c",v[sel][i],i!=k-1?' ':'\n');
17     return 0;
18 }
View Code

相关文章:

  • 2021-06-28
  • 2021-12-08
  • 2022-02-08
  • 2021-09-30
  • 2022-01-15
  • 2021-04-26
  • 2021-06-07
  • 2021-07-23
猜你喜欢
  • 2021-08-20
  • 2021-11-24
  • 2021-08-29
  • 2021-09-08
  • 2022-02-07
  • 2021-07-30
相关资源
相似解决方案