B - 来找一找吧 HihoCoder - 1701(排列组合 + 同余差值相同)
这次到渣渣问桶桶了。。。
准备给你n个数a1, a2, ... an,桶桶你能从中找出m个特别的整数吗,我想让任意两个之差都是k的倍数。
请你计算有多少种不同的选法。由于选法可能非常多,你只需要输出对1000000009取模的结果。
Input 第一行包含三个整数n、m和k。
第二行包含n个整数a1, a2, ... an。
对于30%的数据,2 ≤ m ≤ n ≤ 10
对于100%的数据,2 ≤ m ≤ n ≤ 100 1 ≤ k, ai ≤ 100
Output 一个整数表示答案。
Sample Input
5 3 2
1 2 3 4 5
Sample Output
1
思路
- [ ] 题意:给我们n个数,让我们找出 由m个数组成的方案数(组成的这m个数的中的任意两个之间相差都要是k)
- [ ] 分析:让这个n个数 都取余k,那么余数相同的 数之间必定相差都是k,所以我们可以同 桶排 中的桶 去统计 在这个n个数中余数为1到k-1的数的个数,之后对于 对于每个余数我们考虑:看它的个数是否大于等于m,如果大于的话我们就用数学中的 排列组合知识 去求方案数。
- 特别注意在 排列方案数\(C_x^y\)的时候,时候我们不能 乘完再除,这样有可能超 long long,所以要边乘边除 主要代码如下
ll ans = 1
for(int i = 1; i <= y; i ++)
ans = ans*(x + 1 - i) / i ;
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
const ll mod = 1000000009;
ll work(ll n, ll m)
{
ll res = 1;
/* for(int i = n; i >= n - m + 1; i --) */
/* res *= i; */
/* for(int i = 1; i <= m; i ++) */
/* res /= i; */
for(int i = 1; i <= m; i ++)
res = res*(n + 1 - i)/i;
return res;
}
int main()
{
/* freopen("A.txt","r",stdin); */
ll n, m, k;
scanf("%lld %lld %lld", &n, &m, &k);
int x;
int bar[105] = {0};
for(int i = 1; i <= n; i ++)
{
scanf("%d", &x);
bar[x % k] ++;
}
ll ans = 0;
for(int i = 0; i < k; i ++)
{
if(bar[i] >= m)
ans += work(bar[i], m), ans %= mod;
}
printf("%lld\n", ans);
return 0;
}
B - 来找一找吧 HihoCoder - 1701(排列组合 + 同余差值相同)的更多相关文章
- hihocoder 1579(排列组合)
题意 给出一个长度为n的字符串的sa数组,n<=1e5,问有多少种不同的字符串的sa数组正好是输入的sa数组(字符串每个位置都是小写字母) 分析 sa数组描述的是字符的大小关系,而不是确切的字符 ...
- B - 来找一找吧 HihoCoder - 1701
题目: 这次到渣渣问桶桶了... 准备给你n个数a1, a2, ... an,桶桶你能从中找出m个特别的整数吗,我想让任意两个之差都是k的倍数. 请你计算有多少种不同的选法.由于选法可能非常多,你只需 ...
- tyvj1013 找啊找啊找GF
描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊..."七夕...七夕...七夕这个日子,对于sqybi这种单身的 ...
- BZOJ-1228 E&D 博弈SG+找啊找啊找规律
讨厌博弈,找规律找半天还是错的.... 1228: [SDOI2009]E&D Time Limit: 10 Sec Memory Limit: 162 MB Submit: 666 Solv ...
- TYVJ P1013 找啊找啊找GF Label:动态规划
做题记录:2016-08-15 22:19:04 背景 MM七夕模拟赛 描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见.""诶,别再见啊.. ...
- 找啊找啊找GF
P1013 找啊找啊找GF 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 MM七夕模拟赛 描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手, ...
- Delphi下实现全屏快速找图找色
前言 最近有好几个朋友都在问我找图找色的问题,奇怪?于是乎写了一个专门用于找图找色的单元文件“BitmapData.pas”.在这个单元文件中我实现了从文件中导入位图.屏幕截图.鼠标指针截图.在图片上 ...
- P1509 找啊找啊找GF
P1509 找啊找啊找GF 题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七 ...
- C#实现按键精灵的'找图' '找色' '找字'的功能
http://www.cnblogs.com/JimmyBright/p/4355862.html 背景:游戏辅助功能通常使用按键精灵编写脚本,按键精灵的最大卖点就是能够找到画面中字,图,色,这对于模 ...
随机推荐
- .netCore下的jwt的梳理-->借鉴于“老张的哲学”
之前在公司的项目中有用到jwt进行token验证,但是公司里用的框架已经集成好了jwt,所以对jwt的的了解不够清晰,感觉还是隔着一层.在看了“老张的哲学”的jwt部分后对jwt的认识才更加深刻了一些 ...
- vs code开发python时找不到当前目录下的文件、UnicodeDecodeError: 'gbk'
一.vs code开发python时找不到当前目录下的文件, file = open("readme.txt")一直报错,找不到目录下面的文件 原来vscode 默认都是以打开的项 ...
- Python模块一
logging模块 我们来说一下这个logging模块,这个模块的功能是记录我们软件的各种状态,你们现在和我一起找到红蜘蛛的那个图标,然后右键找一找是不是有个错误日志.其实每个软件都是有错误日志的,开 ...
- Linux 文件系统及 ext2 文件系统
linux 支持的文件系统类型 Ext2: 有点像 UNIX 文件系统.有 blocks,inodes,directories 的概念. Ext3: Ext2 的加强版,添加了日志 ...
- Netty源码分析一<序一Unix网络I/O模型简介>
Unix网络 I/O 模型 我们都知道,为了操作系统的安全性考虑,进程是无法直接操作I/O设备的,其必须通过系统调用请求内核来协助完成I/O动作,而内核会为每个I/O设备维护一个buffer.以下 ...
- Deepin中安装使用好用的字典GoldenDict
2020-03-21 23:08:17 不说废话直接来安装步骤: 打开Deepin的应用商店,输入GoldenDict查找: 找到后点击安装,然后等待一小会,电脑提示音告诉你已经安装完成: 然后再 ...
- java之AQS和显式锁
本次内容主要介绍AQS.AQS的设计及使用.ReentrantLock.ReentrantReadWriteLock以及手写一个可重入独占锁 1.什么是AQS? AQS,队列同步器AbstractQu ...
- 小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- Python - 面向对象(二)类方法、静态方法
面向对象的各种方法 静态方法 - @staticmethod class Person(): name = "cool guy" @staticmethod def static( ...
- spring动态添加bean
不知道大家想过没有,我们使用mybatis的时候只要写接口和配置上一个sql语句就可以了,单从代码的角度来看,这是不合理的. 所以我们通常在service里面注入的mapper它其实是一个代理对象 ...