【组合数学】 牡牛和牝牛
题目: 约翰要带 N只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛。牛们要站成一排,但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有
K 只牝牛。
请计算一共有多少种排队的方法,所有牡牛可以看成是相同的,所有牝牛也一样,答案对 5000011取模。
BZOJ3398
题解:(为了打字方便,下面的牡牛用公牛代替,牝牛用母牛代替)
最多能放n/(k+1) 头公牛
如果n%(k+1)!=0 则能放n/(k+1)+1头,证明很简单。
我们从1到上界枚举可以放的公牛头数,放a头公牛需要(a-1)*k头母牛,因为牛是一样的所以用n减去(a-1)*k就是剩下的可以放公牛的位置数
则放a头公牛的方案数为
所以直接计算即可
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=5000011;
ll ksm(ll a,ll b)
{ll ans=1;for(;b;b>>=1){ if(b&1) ans=ans*a%mod;a=a*a%mod;}return ans;
}
ll calc(ll m,ll n)
{ll sum1=1,sum2=1;if(m>n-m) m=n-m;for (ll i=1;i<=m;i++){(sum1*=(n-i+1))%=mod;(sum2*=i)%=mod;}return (sum1*ksm(sum2,mod-2))%mod;
}
int main()
{ll ans=0;int n,k;cin>>n>>k;int maxn=n/(k+1);if(maxn*(k+1)!=n) maxn++;for(int i=1;i<=maxn;i++)ans=(ans%mod+calc(i,n-k*i+k)%mod)%mod;cout<<(ans+1)%mod;return 0;
}
【组合数学】 牡牛和牝牛相关推荐
- 组合数学——牡牛和牝牛
牡牛和牝牛 约翰要带 N 只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛. 牛们要站成一排,但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至少要有 K 只牝牛. 请计算一 ...
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(DP)
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 353 Solved: 248 ...
- 一本通1652牡牛和牝牛
1652:牡牛和牝牛 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 原题来自:USACO 2009 Feb. Silver 牡 mǔ,畜父也.牝 pìn,畜 ...
- 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 243 Solved: 167 ...
- 【BZOJ3398】牡牛和牝牛
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MB ...
- DP + 前缀和 - 牡牛和牝牛 - AcWing 1307
DP + 前缀和 - 牡牛和牝牛 - AcWing 1307 约翰要带 N 只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛. 牛们要站成一排,但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决 ...
- 牡牛和牝牛(信息学奥赛一本通 1652)
[题目描述] 原题来自:USACO 2009 Feb. Silver 牡 mǔ,畜父也.牝 pìn,畜母也. --<说文解字> 约翰要带 N 只牛去参加集会里的展示活动,这些牛可以是牡牛, ...
- BZOJ3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛
标签:DP,组合数学 Time Limit: 1 Sec Memory Limit: 128MB Submit: 335 Solved: 235 [Submit][Status][Discuss] ...
- [Usaco2009 Feb]Bullcow 牡牛和牝牛
原题链接https://www.lydsy.com/JudgeOnline/problem.php?id=3398 容易想到的一种\(dp\)就是:设\(dp[i][j]\)表示前\(i\)头牛里面有 ...
- bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛——前缀和优化dp / 排列组合
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3398 好简单呀.而且是自己想出来的. dp[ i ]表示最后一个牡牛在 i 的方案数. 当前 ...
最新文章
- 中文 iOS/Mac 开发博客列表
- LINUX下统计代码行数
- email邮件中 内嵌iframe_Python+Selenium执行结果,封装函数,用Python自动发送SMTP邮件...
- SQLi-LABS Less-2,联合注入+报错注入
- 根据用户名或者厂商名称生成相关的弱口令
- Pr常见问题,如何找回不小心删除的视频音频
- Python 密集知识点汇总
- Matlab连接字符串的方法
- OpenGL超级宝典(第7版)之清单的初始环境配置VS2019
- X5开发团队看板 维护工作 根据计划生成工作 部分代码
- Window Server 2008 概述
- canvas画线变粗变模糊的解决办法
- Debian参考手册读书摘要
- 关于dubbo快速开发和服务提供者无法注册上注意点
- 用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)
- python网球比赛模拟主持稿_模拟课堂比赛主持人稿
- Win32程序设计初步之线程
- 流行的蓝光影片播放器推荐
- 计算机经典好书整理收集(持续更新中...)
- 线性变换及其基本性质
热门文章
- 360安全卫士卸载干净-笔记
- 问题随记 —— 无法打开包括文件: “dirent.h”: No such file or directory
- WinRAR 激活的小办法
- syslog工具_INAV:一款专用的日志审查导航工具
- 基于MATLAB产生式系统(植物识别系统)
- 全国大学生数学建模竞赛首战一等奖经验分享
- 单片机的c语言程序设计与应用考题,单片机的C语言程序设计与应用—基于Proteus仿真(第4版)...
- VB操作access数据库
- C++入门教程(一)
- 广告管理系统的UML分析与设计