题意:从n个数中选出k个数,使他们任意两数之差都等于m。

思路:任意差值都等于m,不就等价于k个数模m余数相同吗?

然后桶排储蓄一下各数余数即可。

见代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,k,m,s,flag,sum,a[],b[];
int main()
{
// freopen("rollover.in","r",stdin);
// freopen("rollover.out","w",stdout);
cin>>n>>k>>m;
for(int i=;i<=n;i++)
{
cin>>s;
a[s]++;
b[s%m]++;
}
for(int i=;i<=n;i++)
if(b[i]>=k)
{
flag=i;
cout<<"Yes"<<endl;
break;
}
if(flag!=)
for(int i=flag;sum<=k;i+=m)
{
while(a[i]>&&sum<k)
{
cout<<i<<" ";
a[i]--;
sum++;
}
}
else
cout<<"No";
return ;
}

好吧又炸了。

注意主函数第10行循环细微的区别,本来循环m的循环了n,这里就不解释了。

见代码*2:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,k,m,s,flag,sum,a[],b[];
int main()
{
// freopen("rollover.in","r",stdin);
// freopen("rollover.out","w",stdout);
cin>>n>>k>>m;
for(int i=;i<=n;i++)
{
cin>>s;
a[s]++;
b[s%m]++;
}
for(int i=;i<m;i++)
if(b[i]>=k)
{
flag=i;
cout<<"Yes"<<endl;
break;
}
if(flag!=)
for(int i=flag;sum<=k;i+=m)
{
while(a[i]>&&sum<k)
{
cout<<i<<" ";
a[i]--;
sum++;
}
}
else
cout<<"No";
return ;
}

好题哉!!!

嵊州普及Day4T1的更多相关文章

  1. 嵊州普及Day1T2

    题意:走迷宫.求走到a[n][n]需要多久. 考场上想的dfs,听老师说最多50分.代码懒得码了,知道是走迷宫就好. 正解:bfs,时间复杂度O(n). 见代码: #include<iostre ...

  2. 嵊州普及Day6T3

    题意:n个点,对于q个询问,有t秒及一个矩形的范围.在此矩形内的数每秒加1,若等于c,则下一秒变为0. 思路:t可能很大,%c+1就可以了.然后一个一个加起来就可以了. 见代码: #include&l ...

  3. 嵊州普及Day6T1

    题意:有一个矩形,由正负整数构成.一个位子的魅力值为相邻的格子,若与邻格同号则减去绝对值,若异号则加上绝对值. 思路:一个格子一个格子计算即可,没什么好说的. 见代码: #include<ios ...

  4. 嵊州普及Day5T4

    题意:两个1,每次可将一个*k,一个*K2,n个问题,问能否达成x,y? 思路:只有将x,y相乘为3次方时,才可能.并且相乘的三次方一定要是x,y的因子. 下面证明:3次方易证,因为对每个k,都会乘三 ...

  5. 嵊州普及Day5T2

    题意:将(w,h)的纸条折成(W,H),最少需几步. 思路:横竖互不干扰,然后最多可折int型一半,拿个函数判断两次比较即可,然后折不了的条件是需要的矩形大于给的矩形. 见代码: #include&l ...

  6. 嵊州普及Day5T1

    题意:有n个商店,自家商店的定价不可高于任何一家商店定价,求自家商店最高定价. 思路:拿个变量打擂台即可,不用解释太多. 见代码: #include<iostream> #include& ...

  7. 嵊州普及Day4T2

    题意:有一个单行走廊,每回合第ai个展柜会冒出来一只鬼,右边尽头有一个人间大炮和向最左传送门(费用均1金币),你需要每回合将所有鬼交换展柜,全部至最右,问若从一到n所有回合结束是需多少金币可射死所有鬼 ...

  8. 嵊州普及Day4T4

    题意:求最长上升序列长度和方案数. 思路:经典DP,不需什么别的东西,加一个数组储蓄程序数即可,原题300000可能N2会有问题,但问题不大. 见代码: #include<iostream> ...

  9. 嵊州普及Day3T2

    题意:对于n数列的全排列,有多少种可能,是每项前缀和不能整除3.输出可能性%1000000000037. 思路:全部模三,剩余1.2.0,1.2可这样排:1.1.2.1.2.1.2.……2或2.2.1 ...

随机推荐

  1. 吴裕雄 python 神经网络——TensorFlow 数据集基本使用方法

    import tempfile import tensorflow as tf input_data = [1, 2, 3, 5, 8] dataset = tf.data.Dataset.from_ ...

  2. 思科交换机配置单播MAC地址过滤

    1.其他厂商: 在华为,华三等设备上,我们都有“黑洞MAC地址表项” 的配置,其特点是手动配置.不会老化,且重启后也不会丢失.例如如下示例: 黑洞表项是特殊的静态MAC地址表项,丢弃含有特定源MAC地 ...

  3. 【原】Django总结

    centos7下部署django详细步骤:https://www.cnblogs.com/djangocn/p/9538551.html 快速入门:https://www.cnblogs.com/ze ...

  4. golang数据库操作初体验

    在golang中,提供了标准的数据库接口database/sql包,做过数据库开发的应该知道,不同的数据库有不同的数据库驱动.比如mysql等,我们可以去找 https://golang.org/s/ ...

  5. iOS一个简单的设置圆角不引起性能问题的分类

    http://www.cocoachina.com/articles/18756 iOS设置圆角矩形和阴影效果 https://www.cnblogs.com/rayshen/p/4900336.ht ...

  6. 2020新春公益赛 writeup

    简单的招聘系统 无需注册账号,admin'or 1#登陆,到blank page页面,在输入key处发现有注入点: /pages-blank.php?key=1%27+union+select+1%2 ...

  7. SSH框架整合,启动Tomcat报错:Unable to load configuration

    报错信息: 严重: Dispatcher initialization failed Unable to load configuration. - bean - file:/E:/MIKEY/mik ...

  8. Markdown中实现折叠代码块

    <details> <summary>展开查看</summary> <pre><code> System.out.println(" ...

  9. IELTS Writing Task 2: 'music' essay

    IELTS Writing Task 2: 'music' essay Here's my band 9 sample answer for the question below. Some peop ...

  10. 原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度

    JQ:相对比较简便 获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 ...