bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛——前缀和优化dp / 排列组合
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3398
好简单呀。而且是自己想出来的。
dp[ i ]表示最后一个牡牛在 i 的方案数。
当前位置放牝牛,之前的dp[ k ]不变;当前位置放牡牛,出现了dp[ i ],值是距离大于k的dp[ j ]的和,所以可以前缀和优化。
当然有dp[0]啦。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1e5+,mod=;
int dp[N],c[N],n,k;
int main()
{
scanf("%d%d",&n,&k);
dp[]=;c[]=;
for(int i=;i<=n;i++)dp[i]=c[max(,i-k-)],c[i]=(c[i-]+dp[i])%mod;
printf("%d\n",c[n]);
return ;
}
但是这其实是排列组合的题目。https://www.cnblogs.com/harden/p/6286182.html
逆元不预处理而是现弄其实也挺方便的。“古代猪文”那道题预处理阶乘逆元似乎爆了什么。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1e5+,mod=;
int n,k,jc[N],ans;
void init()
{
jc[]=;
for(int i=;i<=n;i++)jc[i]=(long long)jc[i-]*i%mod;
}
int pw(int x,int k)
{
int ret=;while(k){if(k&)ret=(long long)ret*x%mod;x=(long long)x*x%mod;k>>=;}return ret;
}
int C(int i,int j)
{
return (long long)jc[i]*pw(jc[j],mod-)%mod*pw(jc[i-j],mod-)%mod;
}
int main()
{
scanf("%d%d",&n,&k);
init();
int lm=n/(k+)+-(n%(k+)==);
for(int i=;i<=lm;i++)(ans+=C(n-k*(i-),i))%=mod;// no i=0
printf("%d",(ans+)%mod);
return ;
}
bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛——前缀和优化dp / 排列组合的更多相关文章
- BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛( dp )
水题...忘了取模就没1A了.... --------------------------------------------------------------------------- #incl ...
- BZOJ 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛:dp【前缀和优化】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3398 题意: 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡 ...
- bzoj:3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛
Description 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡 ...
- 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 ...
- BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 水题~
水~ #include <cstdio> #define N 100004 #define mod 5000011 #define setIO(s) freopen(s".in& ...
- 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 243 Solved: 167[S ...
- 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)
http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,“至少”一词可以给我们提示,我们可以枚举 ...
- BZOJ3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 30 Solved: 17[Sub ...
- BZOJ_3398_[Usaco2009 Feb]Bullcow 牡牛和牝牛_组合数学
BZOJ_3398_[Usaco2009 Feb]Bullcow 牡牛和牝牛_组合数学 Description 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛, ...
随机推荐
- 【Tech】单点登录系统CAS客户端demo
服务器端配置请参考: http://www.cnblogs.com/sunshineatnoon/p/4064632.html 工具:myeclipse或者javaee-eclipse 1.启动jav ...
- python之json模块的基本使用
json模块的作用:将字符串和字典相互转换 json和eval的区别: eval函数不能识别null转换成None json可以将null转换成python可以识别的None json序列化和反序列化 ...
- crm销售管理系统一
一.环境配置 1.首先配置pip,环境变量配置 pip 9.0.1 from c:\users\administrator\envs\crm\lib\site-packages (python 3.6 ...
- 20145210姚思羽《网络对抗》Web基础
20145210姚思羽<网络对抗>Web基础 实验后回答问题 (1)什么是表单 表但是与用户交互的窗口,负责采集网页中的数据,允许用户在表单中输入信息. (2)浏览器可以解析运行什么语言. ...
- 20145230《java程序设计》第五次实验报告
20145230实验五 Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 本次实验我负责编写客户端代码的编写,以下是我实验进行的步骤: ...
- Tomcat8内置jdk8运行环境发布web项目
简单说明:之前部署项目都是没有改变之前的环境变量,最近由于公司的数据源换了,jdk由1.7改成了1.8,tomcat7也改为了1.8,现在需要部署采用新数据源的这个项目, 为了不改变之前的环境变量,使 ...
- springmvc异常处理(非注解与注解)
1.异常 程序中的异常一般分为两类:预期异常,运行时异常.前者是我们可预知的,我们一般通过捕获和抛出方式处理这些异常.后者主要通过代码规范.测试等手段来减少异常的发生.一般,我们在系统的DAO.Ser ...
- Oracle给不同组数据添加顺序
SELECT DENSE_RANK() OVER(ORDER BY TABLESPACE_NAME),T.* FROM USER_TABLES T;
- TCP的带宽估计和丢包恢复
一.带宽估计 TCP的带宽估计主要通过拥塞控制算法实现,用到两个变量: 1.cwnd TCP对当前链路可用带宽的估计 2.ssthreash 拥塞控制算法“假想”出来的可用带宽值 二.丢包 ...
- hdoj1003--Max Sum
Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum ...