3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 243  Solved: 167
[Submit][Status][Discuss]

Description

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

Input

    一行,输入两个整数N和K.

Output

 
    一个整数,表示排队的方法数.

Sample Input

4 2

Sample Output

6
样例说明
6种方法分别是:牝牝牝牝,牡牝牝牝,牝牡牝牝,牝牝牡牝,牝牝牝牡,牡牝牝牡

HINT

 

Source

/*
以下牡牛为a,牝牛为b。
学完排列计数后试着来写这题,“至少”一词可以给我们提示,我们可以枚举a为x头(x>1),然后算出对应的排列累计起来。
对于x头a,首先我们先缩掉必要的k头牛(x-1)*k,然后这时可以特判可以先结束(因为单调的),然后在缩好后的x个点和n-x-(x-1)*k个点进行多重排列就行了。
逆元:a^(phi(n)-1) mod n
*/
#include<cstdio>
#include<iostream>
using namespace std;
const int mod=;
typedef long long ll;
int n,k;ll ans;
ll fpow(ll a,ll p){
ll res=;
for(;p;p>>=,a=a*a%mod) if(p&) res=res*a%mod;
return res;
}
ll C(ll n,ll m){
m=min(m,n-m);ll r1=,r2=;
for(ll i=n-m+;i<=n;i++) r1=r1*i%mod;
for(ll i=;i<=m;i++) r2=r2*i%mod;
return r1*fpow(r2,mod-);
}
int main(){
scanf("%d%d",&n,&k);
for(ll i=;i<=n;i++){
ll t=n-(i-)*k;
if(t<i) break;
ans=(ans+C(t,i))%mod;
}
cout<<ans;
return ;
}
/*
DP:
设 f[i]表示取的最后一个数是i的方案数
则 f[i]=siama(f[j]) i-j>k
*/
#include<cstdio>
#define mod 5000011
using namespace std;
int n,k,f[(int)1e5+];
int main(){
scanf("%d%d",&n,&k);
f[]=;
int sum=,ans=;
for(int i=;i<=n;i++){
if(i>k+) sum=(sum+f[i-k-])%mod;
f[i]=sum;
ans=(ans+f[i])%mod;
}
printf("%d\n",ans);
return ;
}

3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛的更多相关文章

  1. BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛( dp )

    水题...忘了取模就没1A了.... --------------------------------------------------------------------------- #incl ...

  2. 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,“至少”一词可以给我们提示,我们可以枚举 ...

  3. bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛——前缀和优化dp / 排列组合

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3398 好简单呀.而且是自己想出来的. dp[ i ]表示最后一个牡牛在 i 的方案数. 当前 ...

  4. BZOJ 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛:dp【前缀和优化】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3398 题意: 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡 ...

  5. bzoj:3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛

    Description     约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡 ...

  6. bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛【dp】

    设f[i]为i为牡牛的方案数,f[0]=1,s为f的前缀和,f[i]=s[max(i-k-1,0)] #include<iostream> #include<cstdio> u ...

  7. BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 水题~

    水~ #include <cstdio> #define N 100004 #define mod 5000011 #define setIO(s) freopen(s".in& ...

  8. BZOJ3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛

    3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 30  Solved: 17[Sub ...

  9. BZOJ_3398_[Usaco2009 Feb]Bullcow 牡牛和牝牛_组合数学

    BZOJ_3398_[Usaco2009 Feb]Bullcow 牡牛和牝牛_组合数学 Description     约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛, ...

随机推荐

  1. Telnet服务器和域名系统的端口号 Mac OS X

    找到Telnet服务器和域名系统的端口号: lapommedeMacBook-Pro:~ lapomme$ grep telnet /etc/services telnet /udp # Telnet ...

  2. UI----安健1 button lable textfiend

    //按钮 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect ];//按钮形状 button.frame = CGR ...

  3. 2.Add Two Numbers-两个单链表相加

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  4. mysql无法启动,一直处于启动状态解决【Mac osx 】

    最近,遇到一个问题,就是mac 使用homebrew 安装了mysql,今天使用mysql.server start,mysql无法启动了,restart还找不到pid,说明服务并没有启动! 错误如下 ...

  5. HDU - 2255 奔小康赚大钱(最大带权匹配)

     Problem Description 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.这可是一件大事,关系到人民的住房问题啊.村里共有n间房间,刚好有n家老百姓, ...

  6. 一起来用css画画

    hello,大白来了... <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> ...

  7. RESTful架构1--架构理解

    转自:理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时( ...

  8. hdu_5773_The All-purpose Zero(LIS)

    题目链接:hdu_5773_The All-purpose Zero 题意: 给你一串数,让你求LIS,不过这里的0可以改变为任意数 题解: 官方题解讲的很清楚 1010 The All-purpos ...

  9. QML中的ExclusiveGroup

    Exclusive这个单词在高中应该都学过,是互斥的意思.如果你没有上过或者还没有上到高中,那你非常棒,计算机领域的大师很多都是这么起步的. ExclusiveGroup顾名思义就是互斥分组,效果很明 ...

  10. NavigationBar的显隐和颜色设置

    [self.navigationController setNavigationBarHidden:NO animated:NO]; self.navigationController.navigat ...