博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
阅读量:5878 次
发布时间:2019-06-19

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

题目大意:

约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有K(O≤K<N)只牝牛.
请计算一共有多少种排队的方法.所有牡牛可以看成是相同的,所有牝牛也一样.答案对5000011取模

题解:

貌似没什么好说的,组合数一下

代码:

#include
using namespace std;const int mod=5000011;int ni[100005],mi[100005];int pow(int a,int b){ int ans=1; while (b){ if (b&1) ans=1ll*ans*a%mod; a=1ll*a*a%mod; b=b>>1; } return ans;}int C(int n,int m){ return 1ll*mi[m]*ni[n]%mod*ni[m-n]%mod;}int main(){ int n,k; scanf("%d%d",&n,&k); mi[0]=1; for (int i=1; i<=n; i++) mi[i]=1ll*mi[i-1]*i%mod; ni[0]=1; for (int i=1; i<=n; i++) ni[i]=1ll*ni[i-1]*pow(i,mod-2)%mod; int ans=0; for (int A=1; n>=(A-1)*k+A; A++){ int B=n-(A-1)*k-A; (ans+=C(A,A+B))%=mod; } printf("%d\n",(ans+1)%mod); return 0;}

  

转载于:https://www.cnblogs.com/silenty/p/9296115.html

你可能感兴趣的文章
【数据结构和算法16】堆排序
查看>>
PHP实现连接设备、通讯和发送命令的方法
查看>>
【HDOJ 5379】 Mahjong tree
查看>>
iOS UITableView表视图滚动隐藏UINavigationController导航栏
查看>>
SDL如何嵌入到QT中?!
查看>>
$(document).ready()
查看>>
RunLoop总结:RunLoop的应用场景(四)
查看>>
8个很实用的在线工具来提高你的Web设计和开发能力
查看>>
P1026 统计单词个数
查看>>
AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe...
查看>>
MySQL主从同步那点事儿
查看>>
Python RGB 和HSV颜色相互转换
查看>>
mybatis分页练手
查看>>
.net数据库连接字符串加密
查看>>
[js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
查看>>
文件监控
查看>>
poi excel 常用api
查看>>
AD提高动态的方法(附SNR计算)
查看>>
在linux程序里面,知道一个函数地址,改函数是属于某个动态库的,怎么样得到这个动态库的全【转】...
查看>>
sklearn 中的交叉验证
查看>>