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如何解决线程安全问题
方式一:同步代码块 synchroized(同步监视器的对象){需要被同步的代码} package threadtest; //使用同步代码块实现Runable接口的线程 public class R ...
- 常用Content-type对照表
文件扩展名 Content-type .html text/html .xhtml text/html .gif image/gif .png image/png .jpg image/jpeg 更加 ...
- 用Python20行代码实现人脸识别
OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python.注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑.为此小编建了个Python全栈免费答疑交 ...
- day8 编码2
#!/usr/bin/env python # -*- coding:utf-8 -*- #str --->byte encode 编码 s = '二哥' b = s.encode('utf-8 ...
- 生成随机数(C++)
// generate random number #include <iostream> #include <iomanip> #include <cstdlib> ...
- 解决kbmMW Scheduler在任务中停止任务遇到的问题
procedure TCustomGridViewCameraDoc.InitSchedule; begin Scheduler.Schedule( procedure(const ASchedule ...
- Wannafly Winter Camp 2020 Day 7E 上升下降子序列 - 数学
神奇公式 #include <bits/stdc++.h> using namespace std; #define int long long int n,mod,c[205][205] ...
- Wannafly Winter Camp 2020 Day 6C 酒馆战棋 - 贪心
你方有 \(n\) 个人,攻击力和血量都是 \(1\).对方有 \(a\) 个普通人, \(b\) 个只有盾的,\(c\) 个只有嘲讽的,\(d\) 个有盾又有嘲讽的,他们的攻击力和血量都是无穷大.有 ...
- burpsuite抓取小程序的数据包(指定DNS)
目标:burpsuite抓取微信小程序的数据包,而且该系统需指定DNS!否则无法访问! 大家都知道小程序是https传输的,所以手机端是需要安装burp证书的. 已忽略安装证书的步骤,可自己百度搜索, ...
- H5_0026:使用CSS里的user-select属性控制用户在页面上选中的内容
CSS里的user-select属性用来禁止用户用鼠标在页面上选中文字.图片等,也就是,让页面内容不可选.也可以只允许用户选中文字,或者全部都放开,用户可以同时选中文字.还包括文本里的图片.视频等其它 ...