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 涨薪 描述 题目描述 输入描述: 输出描述: 题解 代码 ...
随机推荐
- java 上传文件到七牛云中
import com.alibaba.fastjson.JSONObject;import com.qiniu.common.QiniuException;import com.qiniu.commo ...
- C# convert json to datatable,convert list to datatable
static DataTable ConvertJsonToTable(string jsonValue) { DataTable dt = (DataTable)JsonConvert.Deseri ...
- StackExchange.Redis 系列 1:基础使用
本系列博文已经全部完成,完整系列请访问:https://blog.zhuliang.ltd/tags/StackExchange-Redis%E7%B3%BB%E5%88%97/ 本文转自:https ...
- Python3标准库:collections容器数据类型
1. collections容器数据类型 collections模块包含除内置类型list.dict和tuple以外的其他容器数据类型. 1.1 ChainMap搜索多个字典 ChainMap类管理一 ...
- Pyecharts-数据可视化模块
Pyecharts 介绍 数据可视化模块 Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可.而Python是一门富有表达力的语言,很适合用于数据处 ...
- 谷歌更新后,chromedriver如何更换新版本
前天,更新了78版本的谷歌后,chromedriver便不能用了,于是在ChromeDriver仓库下载了相对应版本的chromedriver. 并且放入谷歌文件下C:\Program Files ( ...
- WSL的ssh-agent问题
WSL , 使用forwardAgent 的时候 , 用的以下两个应用 ubuntu 18.04 . ubuntu 这两个应用的 ssh-agent是有问题的 . 详见 https://github. ...
- LAMP环境搭建与配置(3)
PHP配置 查看PHP配置文件的位置 # /usr/local/php/bin/php -i |grep -i "loaded configuration file" ...
- lasso-ridge
线性回归 线性回归很简单,用线性函数拟合数据,用 mean square error (mse) 计算损失(cost),然后用梯度下降法找到一组使 mse 最小的权重. lasso 回归和岭回归(ri ...
- 1.Docker Compose
一.Docker Compose 简介 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.从功能上看,跟 OpenStack 中的 Heat 十 ...