3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 243 Solved: 167
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
样例说明
6种方法分别是:牝牝牝牝,牡牝牝牝,牝牡牝牝,牝牝牡牝,牝牝牝牡,牡牝牝牡
HINT
Source
Silver
/* 以下牡牛为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=5000011; typedef long long ll; int n,k;ll ans; ll fpow(ll a,ll p){ll res=1;for(;p;p>>=1,a=a*a%mod) if(p&1) res=res*a%mod;return res; } ll C(ll n,ll m){m=min(m,n-m);ll r1=1,r2=1;for(ll i=n-m+1;i<=n;i++) r1=r1*i%mod;for(ll i=1;i<=m;i++) r2=r2*i%mod;return r1*fpow(r2,mod-2); } int main(){scanf("%d%d",&n,&k);for(ll i=0;i<=n;i++){ll t=n-(i-1)*k;if(t<i) break;ans=(ans+C(t,i))%mod;}cout<<ans;return 0; }
/* 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+5]; int main(){scanf("%d%d",&n,&k);f[0]=1;int sum=1,ans=1;for(int i=1;i<=n;i++){if(i>k+1) sum=(sum+f[i-k-1])%mod;f[i]=sum;ans=(ans+f[i])%mod;}printf("%d\n",ans); return 0; }
转载于:https://www.cnblogs.com/shenben/p/6286551.html
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛相关推荐
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(DP)
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 353 Solved: 248 ...
- bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛——前缀和优化dp / 排列组合
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3398 好简单呀.而且是自己想出来的. dp[ i ]表示最后一个牡牛在 i 的方案数. 当前 ...
- 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)...
http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,"至少"一词可以给我 ...
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
Description 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至 ...
- [Usaco2009 Feb]Bullcow 牡牛和牝牛
原题链接https://www.lydsy.com/JudgeOnline/problem.php?id=3398 容易想到的一种\(dp\)就是:设\(dp[i][j]\)表示前\(i\)头牛里面有 ...
- BZOJ3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛
标签:DP,组合数学 Time Limit: 1 Sec Memory Limit: 128MB Submit: 335 Solved: 235 [Submit][Status][Discuss] ...
- bzoj3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛
Description 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡牛之间至 ...
- 【Usaco 2009 Feb】Bullcow 牡牛和牝牛
[题目] 传送门 Description 约翰要带 n(1≤n≤100000)n(1≤n≤100000)n(1≤n≤100000) 只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站 ...
- 【BZOJ3398】牡牛和牝牛
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MB ...
最新文章
- u-boot之怎么实现分区
- ERP物料采购系统需求分析与效果展示 ERP实施以失败告终的四个原因分析
- Istio 从懵圈到熟练:二分之一活的微服务
- NJ4X源码阅读分析笔记系列(三)—— nj4x-ts深入分析
- eclipse下开发简单的Java Web Service
- 做游戏,学编程(C语言) 9 贪吃蛇
- gdb调试中出现optimized out
- Java Unable to load library ‘gsdll64‘: 报错,解决方案
- Java IO-03 字节流和字符流
- 论文助手 for word/wps
- 未来教育计算机二级题库如何更新,未来教育的计算机二级题库准吗?
- 家用wifi的配置和重置
- 数学在计算机领域的应用,浅析数学在计算机领域中的重要性
- 火遍全网的「蚂蚁呀嘿」教程开源了!
- java后端工程师主流技术
- 中国移动的指令大全!(不再需要人工台)
- html中微博发布怎么做,js实现微博发布小功能
- oracle变成大写快捷键,Oracle函数(把每个单词首个字母变为大写)
- 鼻炎舒宁治过敏性鼻炎
- Echarts柱状图百分比显示