2020牛客竞赛 DP F 碎碎念
作者:儒生雄才1
链接:https://ac.nowcoder.com/discuss/366644
来源:牛客网
题目连接:https://ac.nowcoder.com/acm/contest/3006/F
考虑到了第iii句话时候,这种状态可能由两种状态转移而来。
- 直接一发AC,从第i−1i-1i−1句话直接到达第iii句。
- 如果i>=ki>=ki>=k,可以由一发RJ从i−ki-ki−k句到达第i句。 构造DP[i][0/1]DP[i][0/1]DP[i][0/1],DP[i][0]DP[i][0]DP[i][0]表示到了第iii句话,是从i−1i-1i−1句话AC到达的方案数。DP[i][1]DP[i][1]DP[i][1]表示到了第i句话,是由i−ki-ki−k句话RJ过来的方案数。 由此可知转移条件
- DP[i][0]=DP[i−1][0]+DP[i−1][1]DP[i][0]=DP[i-1][0]+DP[i-1][1]DP[i][0]=DP[i−1][0]+DP[i−1][1] (前面一发是WA是AC无关紧要)
- DP[i][1]=DP[i−k][0]DP[i][1]=DP[i-k][0]DP[i][1]=DP[i−k][0] (i>=ki>=ki>=k) (前面一发只能是AC)
易确定边界条件 DP[0][0]=1DP[0][0]=1DP[0][0]=1; DP[0][1]=0DP[0][1]=0DP[0][1]=0;
由于有QQQ次查询 ,查询数目较多,我们可以线性时间内预处理前nnn项和即前缀和,然后用第RRR项减去第L−1L-1L−1项即可。
#include <bits/stdc++.h>
#define MAXN 100005
const int P = 1e9+;
using namespace std;
typedef long long ll;
int dp[MAXN][]={};
int l,r;
int main() {
int q,k;
scanf("%d%d",&k,&q);
dp[][]=;
for(int i=;i<MAXN;i++){
dp[i][]=(dp[i-][]+dp[i-][])%P;
if(i>=k){
dp[i][]=dp[i-k][];
}
}
dp[][]=;
for(int i=;i<MAXN;i++){
dp[i][]=((dp[i][]+dp[i][])%P+dp[i][])%P;
// printf("%d ",dp[i][3]);
dp[i][]+=dp[i-][];
dp[i][]%=P;
} for(int i=;i<q;i++){
scanf("%d%d",&l,&r);
ll ans=dp[r][]-dp[l-][];
printf("%lld\n",((ans%P+P)%P));
}
return ;
}
2020牛客竞赛 DP F 碎碎念的更多相关文章
- 2020牛客寒假算法基础集训营2 J题可以回顾回顾
2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...
- 2020牛客寒假算法基础集训营1 J题可以回顾回顾
2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...
- 2020牛客多校第八场K题
__int128(例题:2020牛客多校第八场K题) 题意: 有n道菜,第i道菜的利润为\(a_i\),且有\(b_i\)盘.你要按照下列要求给顾客上菜. 1.每位顾客至少有一道菜 2.给顾客上菜时, ...
- 牛客练习赛3 F - 监视任务
链接:https://www.nowcoder.net/acm/contest/13/F来源:牛客网 题目描述
- 牛客网 牛客练习赛43 F.Tachibana Kanade Loves Game-容斥(二进制枚举)+读入挂
链接:https://ac.nowcoder.com/acm/contest/548/F来源:牛客网 Tachibana Kanade Loves Game 时间限制:C/C++ 1秒,其他语言2秒 ...
- 牛客练习赛16 F 选值【二分/计数】
链接:https://www.nowcoder.com/acm/contest/84/F 来源:牛客网 题目描述 给定n个数,从中选出三个数,使得最大的那个减最小的那个的值小于等于d,问有多少种选法. ...
- 2020牛客寒假算法基础集训营4-F树上博弈
链接:https://ac.nowcoder.com/acm/contest/3005/F来源:牛客网 题目描述 现有一个 n 个点,n-1条边组成的树,其中 1 号点为根节点. 牛牛和牛妹在树上玩游 ...
- 2020牛客寒假算法基础集训营1 F-maki和tree
链接:https://ac.nowcoder.com/acm/contest/3002/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 2020牛客NOIP赛前集训营-普及组(第二场) 题解
目录 T1 面试 描述 题目描述 输入描述: 输出描述: 题解 代码 T2 纸牌游戏 描述 题目描述 输入描述: 输出描述: 题解 代码 T3 涨薪 描述 题目描述 输入描述: 输出描述: 题解 代码 ...
随机推荐
- C#常见基础算法
namespace 面试常见算法 { class Program { static void Main(string[] args) { ); Console.WriteLine(n1); Test2 ...
- Kali Linux中Chrome浏览器不能启动的问题
kali中自带了Chromium Web Browser,我点了几次没反应.我还以为是Chrome的版本问题.于是下载了Chrome的deb包. 安装中还解决了一个包依赖问题.安装成功还是不能启动.于 ...
- Mac下git的安装配置以及gerrit初次使用
1.Mac下git下载 在终端首次运行git命令,若未安装,会提示下载开发者工具Xcode,根据提示下载即可: 2.查看git版本 git version 2.首次使用git配置 git config ...
- 通过 Chrome浏览器 查看http请求报文
as we all know HTTP 请求报文 包含请求行.请求头和请求体三部分 请求行:(请求方式 资源路径 协议/版本) 例如:POST /test/index.html HTTP/1.1 P ...
- 使用栅格系统和flex布局开发响应式页面源码
响应式布局的原理xsmall <576pxsmall >=576pxmedium >=768pxlarge >=992pxxlarge >=1200px 接下来是效果图 ...
- PWA - service worker - Workbox(未完)
Get Started(开始) 只有get请求才能cache缓存吗? Create and Register a Service Worker File(创建和注册 Service Worker) B ...
- JZOJ5988 珂学计树题
题意 liu_runda曾经是个喜欢切数数题的OIer,往往看到数数题他就开始刚数数题.于是liu_runda出了一个数树题.听说OI圈子珂学盛行,他就在题目名字里加了珂学二字.一开始liu_rund ...
- Java架构师资料
Java架构师ZHONGVIP课程资料链接 2017年第一学期的资料链接:(视频和文档是一起的) 一.互联网工程专题 链接:https://pan.baidu.com/s/1PGE ...
- Django 上下文管理器,为父模板添加动态数据
1.摘要:模板继承可以减少页面内容的重复定义,实现页面内容的重用. 但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的.我们可以通过自定义上下文处理器来解决 2.Django上下文处理器 ...
- Word报表生成
/// <summary> /// 生产报表 /// </summary> /// <param name="strTemplate">< ...