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 背景:游戏辅助功能通常使用按键精灵编写脚本,按键精灵的最大卖点就是能够找到画面中字,图,色,这对于模 ...
随机推荐
- 【推荐算法工程师技术栈系列】分布式&数据库--tensorflow
目录 TensorFlow 高阶API Dataset(tf.data) Estimator(tf.estimator) FeatureColumns(tf.feature_column) tf.nn ...
- Linux——如何将Red Hat Enterprise Linux 6的语言改为中文?
第一步,打开终端,输入su -,获取超级用户权限,输入密码. 第二步,输入cd /etc/sysconfig,进入设置目录. 第三步,输入vi i18n,进入到配置文件. 第四步,按 ‘i’键,进入编 ...
- Java基础面试系列(一)
Java基础面试总结(一) 1. 面向对象和面向过程的区别 面向过程 面向对象 性能 高于面向对象 类加载的时候需要实例化,比较消耗资源 三易(易维护,易复用,易扩展) 不如面向对象 具有封装,继承, ...
- 在Tomcat上发布Web项目的方式
一. Tomcat的使用: 安装:解压压缩包即可 注意:安装目录不能有中文 目录结构: ①bin:可执行文件 ②conf:可执行文件 ③lib:依赖的jar包 ④logs:日志文件 ⑤:temp:临时 ...
- 面试官系统精讲Java源码及大厂真题系列之Java线程安全的解决办法
1. 背景 1.1 static修饰类变量.方法.方法块. public + static = 该变量任何类都可以直接访问,而且无需初始化类,直接使用 类名.static 变量 1.2 多个线程同时 ...
- javaee作业
一.单选题(共5题,50.0分) 1 在SqlSession对象的openSession()方法中,不能作为参数executorType的可选值 的是( ). A. ExecutorTyp ...
- CTR学习笔记&代码实现1-深度学习的前奏LR->FFM
CTR学习笔记系列的第一篇,总结在深度模型称王之前经典LR,FM, FFM模型,这些经典模型后续也作为组件用于各个深度模型.模型分别用自定义Keras Layer和estimator来实现,哈哈一个是 ...
- JAVAEE学习day04方法的定义和重载
1.方法定义的格式 方法就是完成特定功能的代码块 修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...){ 方法体; return 返回值; } 修饰符: 初学者只需记住publ ...
- 032.核心组件-kube-proxy
一 kube-proxy原理 1.1 kube-proxy概述 Kubernetes为了支持集群的水平扩展.高可用性,抽象出了Service的概念.Service是对一组Pod的抽象,它会根据访问策略 ...
- GO系列 | 5分钟入门GO【译】
什么是Google Go? Google Go是由Robert Griesmer,Rob Pike和Ken Thompson在Google设计的一种开源编程语言. Go在语法上类似于C语言: 除了内存 ...