Divisibility题解
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题解相关推荐
- CF597 (Div. 2)题解
A.乱搞gcd B.模拟题 C. 原始串中'w'字符会被替换成 uu 'm'字符会被替换成nn, 给你一个字符串,问你他原串有多少种可能 nnn -> nnn nm mn 3种 nnnn -&g ...
- 欧拉计划(project euler)最详细中文题解
欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...
- XUST——Kcsoftware Part3 题目题解
A - 阶乘后面0的数量 题解: 题目要求我们计算阶乘结果后0的个数,刚开始很多同学都是去尝试进行暴力求解,计算出最后结果再统计,毫无疑问这个是会爆掉的,所以我们要去思考新的办法去解决这个问题. 那么 ...
- 老鱼的-kuangbin专题题解
kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...
- [JS][dfs]题解 | #迷宫问题#
题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...
- [JS][dp]题解 | #打家劫舍(一)#
题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...
- [JS]题解 | #魔法数字#
题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...
- [JS]题解 | #岛屿数量#
题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...
- [JS] 题解:提取不重复的整数
题解:提取不重复的整数 https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1 时间限制:1秒 空间限制:32M 描述 输 ...
- 洛谷-题解 P2672 【推销员】
独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...
最新文章
- 工业物联网将借助新兴技术实现华丽转身
- navicat保存查询语句_MySQL数据库安装创建及Navicat客户端连接
- Linux系统之时间管理
- ME21N增强提示警告消息
- 设计模式的征途—3.工厂方法(Factory Method)模式
- 快速解决 Android SDK Manager 无法下载或者下载速度慢
- 不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...
- 时时流量查看工具-ifsta,nload,iftop
- Linux 视频设备驱动V4L2最常用的控制命令使用说明(1.02)
- 阿里OSS对象存储,实现图片上传代码;
- 两个Listbox的关联(省名 和 该省城市的对应)
- 货币代码无法进行ALE通信
- 如何用计算机制作思维导向图,电脑怎样制作思维导图,手把手教你绘制思维导图简单方法...
- Java计算机毕业设计单车商城源码+系统+数据库+lw文档
- python如何获取excel数据_python如何读取excel表数据
- 全志F1C100S/F1C200S学习笔记(12)——问题解决汇总
- ffmpeg v4l2集成分析
- Latex编辑器Texstudio的注释快捷键。
- BeagleBoard-x15烧录emmc
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)