时间限制: 1 Sec 内存限制: 128 MB
题目描述
众所周知,一个有着6个人的宿舍可以有7个微信群(^_^,别问我我也不知道为什么),然而事实上这个数字可以更大,因为每3个或者是更多的人都可以组建一个群,所以6个人最多可以组建42个不同的群。
现在,已知一间宿舍有N个人,并且每至少K个人都可以组建一个微信群,那么他们最多可以组建多少个不同的微信群?
输入
一行两个整数N和K,表示宿舍中的人数和最少能够组建微信群的人数
输出
一行一个整数,即最多能组建多少个不同的微信群,由于这个数字很大,请输出对10^9+7求余后的结果
样例输入
6 3
样例输出
42
提示
对于30%的数据,3<=N<=10^3
对于60%的数据,3<=N<=10^6
对于100%的数据,3<=N<=10^9,3<=K<=10^5

题目要求ans = ∑ni=kCin

根据组合数的性质 ∑ni=0Cin = 2n

所以ans = 2n - ∑k−1i=0Cin

而由Cmn = Cm−1n∗n−m+1m

可以O(N)线性求出ans

#define FILE() freopen("../../in.txt","r",stdin)
#include <bits/stdc++.h> using namespace std; typedef long long ll;
const int maxk = 100005;
const ll MOD = 1e9+7; ll fastpower(ll x,ll n) {
ll res = 1;
while(n) {
if(n&1)res = res*x%MOD;
x = x*x%MOD;
n>>=1;
}
return res;
} int main() {
//FILE();
ll k,n;
cin>>n>>k;
ll sum = fastpower(2,n),ans=1,tmp=n;
for(int i=2; i<=k; i++) {
ans=(ans+tmp)%MOD;
tmp=((tmp*(n-i+1))%MOD*fastpower(i,MOD-2))%MOD;
}
ans=(sum-ans+MOD)%MOD;
printf("%lld\n",ans);
return 0;
}

【组合数】微信群 @upcexam6016的更多相关文章

  1. 一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片

    说点题外话. Coding中我们总是经历着这么几个过程. 学会使用: 不管是API也好, 开源库也好. 总是在最开始的学会去用. 了解实现原理: 可能会因为一些不兼容, 代码的异常状态的处理不够完美等 ...

  2. 今天微信群需要人家通过吗?是微信bug吗

    今天遇到微信群拉人的问题,所以来和大家取经,刚开始拉人一下就拉进去了,后来拉的需要人家通过,今天朋友些也帮我拉人也是这样的,所以想问下微信群扩容的问题.晚上有位朋友跟我说一次拉十个人,不能拉多,这样就 ...

  3. 微信群之Java技术红包问答

    缘起 年前公司拿到B+轮融资,相应的在战略上也做了很大的调整,毕竟B轮要做的事情不仅仅是增加用户数,于是乎公司在2017年的开头补充了一部分技术团队,这次人员选择上主要针对一些工作经验在1-2年的技术 ...

  4. 基于itchat的微信群聊小助手基础开发(一)

    前段时间由于要管理微信群,基于itchat开发了一个简单的微信机器人 主要功能有: 图灵机器人功能 群聊昵称格式修改提示 消息防撤回功能 斗图功能 要开发一个基于itchat的最基本的聊天机器人,在g ...

  5. python-itchat 统计微信群、好友数量的实例

    今天小编就为大家分享一篇python-itchat 统计微信群.好友数量,及原始消息数据的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧   效果:   好友: # 获取自己的用 ...

  6. 环境与工具1:微信群刷屏 | itchat

    在微信群里面,"刷屏"的行为是被谴责的,伴随着"快发红包道歉"与"送飞机票"的出现.那如果小程硬是要做到"刷屏"来验证自 ...

  7. 分享Azure DevOps技术,来微信群吧!

    现在QQ用户越来越少,基本上都转移到微信上了. 讨论问题,动不动就来一个微信群.下面这样几百人的微信群,专门讨论Azure DevOps (TFS)技术,你加入了么? 还等什么,扫描吧!

  8. 微信群的id

    今天网速慢了,竟然把微信群的id卡出来了,记录一下. 格式应该是一个像QQ群一样的数字,然后+@chatroom 看图!   文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论.

  9. C语言主要做哪些方面的开发---一个来自“IT技术学习”微信群的问题及答复

    近期,在"IT技术学习"微信群中,有同学问了这样一个问题:C语言主要做哪些方面的开发?在这篇文章中,我想结合自身的经验,对这个问题进行下解答. C语言是计算机及其相关专业(如通信. ...

随机推荐

  1. 【bzoj4347】[POI2016]Nim z utrudnieniem dp

    题解: 感觉我简直是个傻逼 把题目数据范围看错了.. 然后觉得这题非常的不可做 sigmaai <1e7.... 这题的dp是非常简单的,注意到d很小 f[i][j][k]表示前i个,%d为j, ...

  2. ReactNative调试技术-真机调试

    在我开始用ReactNative开始开发APP时,为了能够获取程序运行中的信息,就需要搭建调试环境. 手机调试方式有两类,一类是模拟器方式,另一类是真机模式. 我测试了一下相应的模拟器: 如果用谷歌管 ...

  3. ElementLayer support not implemented for native rendering. Layer ID:

    在 arcgis runtime for wpf 添加标注闪烁动画时(实现方法参考:http://blog.csdn.net/arcgisserver_book/article/details/805 ...

  4. JMeter3.0 post参数/BeanShell中文乱码问题

    在用JMeter,在http请求的 Body Data或BeanShell中写的中文,为什么都是乱码—都是方框中间有个问号. 而且字体非常小,看着吃力,乱码现象如下图:

  5. net core体系-2继续认识net core

    认识net core,net core到底啥?从哪说起呢?我想作为开发的码农,web项目不陌生吧,那就从对应的.net web 对应的net core Web Application项目开始吧. 下面 ...

  6. Codeforces 989D A Shade of Moonlight

    A Shade of Moonlight 列列式子发现, 对于同一个云来说只有反向的云才能和它相交, 然后我们发现这个东西有单调性,然后二分就好啦. #include<bits/stdc++.h ...

  7. Python自用笔记

    函数:raw_input()和input() 注意:在python3.x中,已经删除raw_input(),取而代之的是input(),当然这仅仅是重命名,用法还是一样.因此在这里介绍的是python ...

  8. python--异常捕获

    #异常捕获---指定异常类型 try: #尝试 fi=open(r'D:\Users\4399-3046\Desktop\test.txt',mode='wb'); fi.write('写入文字'); ...

  9. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第二集之新建虚拟机】

    1, 2, 3, 4,(如果选择版本时,发现选项中没有centos,可以选择other linux2.6.x kernel) 5,(虚拟机命名:Centos_用途_IP) 6,(选择Split vir ...

  10. JavaSE| 集合

    集合 l  Collection 层次结构中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素,而另一些则不允许. ...