(第二场)A Run 【动态规划】
链接:https://www.nowcoder.com/acm/contest/140/A
题目描述:
White Cloud is exercising in the playground.
White Cloud can walk 1 meters or run k meters per second.
Since White Cloud is tired,it can't run for two or more continuous seconds.
White Cloud will move L to R meters. It wants to know how many different ways there are to achieve its goal.
Two ways are different if and only if they move different meters or spend different seconds or in one second, one of them walks and the other runs.
输入描述:
The first line of input contains 2 integers Q and k.Q is the number of queries.(Q<=100000,2<=k<=100000)
For the next Q lines,each line contains two integers L and R.(1<=L<=R<=100000)
输出描述:
For each query,print a line which contains an integer,denoting the answer of the query modulo 1000000007.
案例
输入:
3 3
3 3
1 4
1 5
输出:
2
7
11
大概题意:
小白喜欢运动,他每秒可以走一米或者跑K米,有Q次查询,每次查询求跑0 ~ 【L,R】米的方案数;
思路:
一开始看到这道题想着是道规律题,结果花时间列数据找规律。。。
果然还是too young too simple,师兄花了短短的时间AC之后在群里丢给我们八个字“记忆化搜索,过了”。
想了那么多,这就是道纯粹的DP了啊,关键在于分开跑和走的方案,不能连续跑
状态:
dp[i][0] 走 i meters 的方案数
dp[i][1] 跑 i meters 的方案数
转移方程:
dp[i][0] = dp[i-1][1] + dp[i-1][0];
dp[i][1] = dp[i-k][0] (注意题目条件:不能连续跑,有队友一直卡在60%这里的原因)
!!!更新dp值的同时也要更新前缀和sum[i] (用于最后求答, 本人傻傻的还在后面查询的时候才计算前缀和,一直T)!!!
AC code:
#include <cstdio>
#include <iostream>
#include <cstring>
#define mod 1000000007
using namespace std; const int maxk = ; int Q, k;
long long int dp[maxk][], sum[maxk]; int main()
{
scanf("%d%d", &Q, &k);
for(int i = ; i < k; i++)
{
dp[i][] = ;
dp[i][] = ;
if(i > )
sum[i] = sum[i-] + dp[i][]+dp[i][];
}
dp[k][] = ;
sum[k] = sum[k-] + dp[k][];
for(int i = k; i < maxk; i++)
{
dp[i][] = ((dp[i-][] + dp[i-][]))%mod ;
dp[i][] = dp[i-k][];
sum[i] = sum[i-]+dp[i][]+dp[i][];
}
while(Q--)
{
int L, R;
long long int ans = ;
scanf("%d%d", &L, &R);
ans =(sum[R] - sum[L-] + mod)%mod;
printf("%lld\n", ans);
}
return ;
}
(第二场)A Run 【动态规划】的更多相关文章
- 牛客多校第二场A run(基础DP)
链接:https://www.nowcoder.com/acm/contest/140/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...
- 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...
- 2018牛客暑期ACM多校训练营第二场(有坑未填)
第二场终于等来学弟 开始(被队友带飞)的开心(被虐)多校之旅 A run A题是一个递推(dp?)+前缀和 因为看数据量比较大 就直接上前缀和了 一个比较简单的递推 没有太多难点 签到题 需要注意 ...
- 牛客网 暑期ACM多校训练营(第二场)A.run-动态规划 or 递推?
牛客网暑期ACM多校训练营(第二场) 水博客. A.run 题意就是一个人一秒可以走1步或者跑K步,不能连续跑2秒,他从0开始移动,移动到[L,R]的某一点就可以结束.问一共有多少种移动的方式. 个人 ...
- 本周进步要点20161023(含李笑来第二场live笔记要点)
本周主要忙于去武汉参加iDOF2016智能数字油田会议,会上做了题为“油田SOA及云平台的系统思考与实践”的报告,为了准备这篇报告,用到了一些以前学过的知识,具体内容见“参加iDOF2016会议的收获 ...
- 2014百度之星预赛(第二场)——Best Financing
2014百度之星预赛(第二场)--Best Financing Problem Description 小A想通过合理投资银行理財产品达到收益最大化.已知小A在未来一段时间中的收入情况,描写叙述为两个 ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
- NOI.AC NOIP模拟赛 第二场 补记
NOI.AC NOIP模拟赛 第二场 补记 palindrome 题目大意: 同[CEOI2017]Palindromic Partitions string 同[TC11326]Impossible ...
- DevOps Workshop 研发运维一体化(北京第二场) 2016.04.27
北京不亏为首都,人才济济,对微软DevOps解决方案感兴趣的人太多.我们与微软公司临时决定再家一场培训. 我之前在博客中(DevOps Workshop 研发运维一体化第一场(微软亚太研发集团总部)h ...
- CTF-i春秋网鼎杯第二场misc部分writeup
CTF-i春秋网鼎杯第二场misc部分writeup 套娃 下载下来是六张图片 直接看并没有什么信息 一个一个查看属性 没有找到有用信息 到winhexv里看一下 都是标准的png图片,而且没有fla ...
随机推荐
- 微信小程序wx:for循环
最近做微信小程序碰到了一些问题,和wx:for循环相关,wx:for有很多用途,例如可以用于swiper中图片的循环,也就是所谓的轮播图,也可以用于其它的循环,可以大大地减少代码量. 但wx:for. ...
- 异步http请求的实现
这是我自己在某论坛上发的一篇水贴:http://www.sufeinet.com/thread-9275-1-2.html,原理和解释,我就直接重发一遍在自己博客上了. 时隔一个月 回来把之前的坑填 ...
- Java - 谨慎覆盖clone
覆盖clone时需要实现Cloneable接口,Cloneable并没有定义任何方法. 那Cloneable的意义是什么? 如果一个类实现了Clonable,Object的clone方法就可以返回该对 ...
- Java - 关于扩展线程安全类的一些思考
重用可以节省我们进行开发和测试(测试比我们自己测严谨地多)的时间和其他各种成本. 但是,对一个线程安全类进行扩展的时候就需要思考一些问题. 比如我们熟知的线程安全类Vector,该类中对所有的公有方法 ...
- MySql 学习(一)
入门使用 show databases; //假设存在seckill 数据库 use seckill; //查看所有表 show tables; //查看某个表的字段,例如存在 student 表 d ...
- html/JS onload的详解
等待页面都加载完后再执行 <!DOCTYPE html><html lang="en"><head> <meta charset=&quo ...
- Python基础学习总结(四)
6.高阶特性 6.1迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration).在Python中,迭代是通过for ... ...
- No.2一步步学习vuejs 实例demo篇
简单应用Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统: <div id="app"> {{ message }} </d ...
- 初识http2.0
初识http2.0 HTTP2.0性能增强的核心:二进制分帧 HTTP 2.0最大的特点: 不会改动HTTP 的语义,HTTP 方法.状态码.URI 及首部字段,等等这些核心概念上一如往常,却能致力于 ...
- HttpContext.Current.Request.RawUrl是什么意思?
原始 URL 定义为 URL 中域信息之后的部分.在 URL 字符串 http://www.contoso.com/articles/recent.aspx 中,原始 URL 为/articles/r ...