博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces-876B Divisiblity of Differences
阅读量:4156 次
发布时间:2019-05-26

本文共 1344 字,大约阅读时间需要 4 分钟。

CodeForces-876B Divisiblity of Differences

标签:水题


/*    题意:给n个数,选k个,要求在k里面任选2个数都能被m整除。          注意n里面可以有相同的数。    思路:对每个数initial[i],保存initial[i]%m在mod[i]。          找出现次数(ans)最多的那个余数,若ans >= k,有解;否组无解。见代码。*/#include 
#include
using namespace std;const int maxn = 100005;int initial[maxn], mod[maxn];int main(){ int n, k, m; while(scanf("%d %d %d", &n, &k, &m) != EOF) { for(int i = 0; i < n; i++) { scanf("%d", &initial[i]); mod[i] = initial[i] % m; // } sort(mod, mod + n); //找出现次数(ans)最多的那个余数 int temp = mod[0], total = 0, ans = 0, flag; for(int i = 0; i < n; i++) { if(temp == mod[i]) total++; else { temp = mod[i]; total = 1; //total = 1 } if(total > ans) { ans = total; flag = temp; } } if(ans >= k) //输出 { printf("Yes\n"); int time = 0; for(int i = 0; i < n; i++) { if(initial[i] % m == flag && time < k) //time < k, 选k个数 { printf("%d ", initial[i]); time++; } } printf("\n"); } else printf("No\n"); } return 0;}

转载地址:http://dikxi.baihongyu.com/

你可能感兴趣的文章
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
阿里p8程序员四年提交6000次代码的确有功,但一次错误让人唏嘘!
查看>>
一道技术问题引起的遐想,最后得出结论技术的本质是多么的朴实!
查看>>
985硕士:非科班自学编程感觉还不如培训班出来的,硕士白读了?
查看>>
码农:和产品对一天需求,产品经理的需求是对完了,可我代码呢?
查看>>
第六章 背包问题——01背包
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>