From lyh 学长

2018.5.3 信(liang)心(liang)杯T3

一道略弱的数论题。

题目描述

给定 n个数,问是否能从中选出恰好 k个数,使得这些数两两之差可以被 m 整除。

输入输出格式

输入格式:

第一行输入三个正整数 n,k,m。

接下来一行 n个正整数。

输出格式:

若不能选出 k个数,则输出"No "(不包含引号)。

若可以,第一行输出" Yes"(不包含引号),第二行输出 k个正整数,用空格隔开,如果有多种方案,输出字典序最小的方案。

样例一

输入:3 2 3 1 8 4

输出:Yes

1 4

样例二

输入:3 3 3 1 8 4

输出:No

样例三

输入:4 3 5 2 7 7 7

输出:Yes

2 7 7

解析

可用简单同余知识来处理然而我考试时是用DP做的。

一道略弱的数论题。

若两数之差被m整除,则这两个数关于m同余。

轻松解出。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     int al[1000002],bl[1000002],cl[1000002],m,n,k,l=0,q;
 5     scanf("%d%d%d",&n,&k,&m);
 6     for(int i=1;i<=n;i++)
 7         scanf("%d",&al[i]);
 8     sort(al+1,al+1+n);
 9     for(int i=1;i<=n;i++)
10         cl[i]=al[i]%m;
11     for(int i=1;i<=n;i++)
12         bl[cl[i]]++;
13     for(int i=1;i<m;i++){
14         if(bl[cl[i]]>=k){
15             cout<<"Yes"<<endl;
16             for(int j=1;j<=n;j++){
17                 if(cl[i]==cl[j]){
18                     printf("%d ",al[j]);
19                     l++;
20                     if(l==k) return 0;
21                 }
22             }
23         }
24     }
25     cout<<"No"<<endl;
26     return 0;
27 }

 

转载于:https://www.cnblogs.com/wzyzxy/p/9321441.html

Divisibility题解相关推荐

  1. CF597 (Div. 2)题解

    A.乱搞gcd B.模拟题 C. 原始串中'w'字符会被替换成 uu 'm'字符会被替换成nn, 给你一个字符串,问你他原串有多少种可能 nnn -> nnn nm mn 3种 nnnn -&g ...

  2. 欧拉计划(project euler)最详细中文题解

    欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...

  3. XUST——Kcsoftware Part3 题目题解

    A - 阶乘后面0的数量 题解: 题目要求我们计算阶乘结果后0的个数,刚开始很多同学都是去尝试进行暴力求解,计算出最后结果再统计,毫无疑问这个是会爆掉的,所以我们要去思考新的办法去解决这个问题. 那么 ...

  4. 老鱼的-kuangbin专题题解

    kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...

  5. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  6. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  7. [JS]题解 | #魔法数字#

    题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...

  8. [JS]题解 | #岛屿数量#

    题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...

  9. [JS] 题解:提取不重复的整数

    题解:提取不重复的整数 https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1 时间限制:1秒 空间限制:32M 描述 输 ...

  10. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

最新文章

  1. 工业物联网将借助新兴技术实现华丽转身
  2. navicat保存查询语句_MySQL数据库安装创建及Navicat客户端连接
  3. Linux系统之时间管理
  4. ME21N增强提示警告消息
  5. 设计模式的征途—3.工厂方法(Factory Method)模式
  6. 快速解决 Android SDK Manager 无法下载或者下载速度慢
  7. 不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...
  8. 时时流量查看工具-ifsta,nload,iftop
  9. Linux 视频设备驱动V4L2最常用的控制命令使用说明(1.02)
  10. 阿里OSS对象存储,实现图片上传代码;
  11. 两个Listbox的关联(省名 和 该省城市的对应)
  12. 货币代码无法进行ALE通信
  13. 如何用计算机制作思维导向图,电脑怎样制作思维导图,手把手教你绘制思维导图简单方法...
  14. Java计算机毕业设计单车商城源码+系统+数据库+lw文档
  15. python如何获取excel数据_python如何读取excel表数据
  16. 全志F1C100S/F1C200S学习笔记(12)——问题解决汇总
  17. ffmpeg v4l2集成分析
  18. Latex编辑器Texstudio的注释快捷键。
  19. BeagleBoard-x15烧录emmc
  20. Android App支付系列(一):微信支付接入详细指南(附官方支付demo)

热门文章

  1. 苹果发布 AirTag 固件更新
  2. iOS开发之openURL:(打电话,打开网页等)
  3. 如何用Mac 自带的 Automator 进行图片格式转换?
  4. M1 版 MacBook SSD 为何会损耗巨大?
  5. recyclerview简单实现单选多选反选全选
  6. springmvc + ehcache + redis+mybatis 分布式架构
  7. 系统优化设计方案3.20周一例会
  8. 拿到一份陌生数据我们应该怎么办
  9. JQuery基础学习笔记(1)
  10. 用 GitHub 来部署静态网页 ꒰・◡・๑꒱