\(problem\)

哇 看各位巨佬都来发\(T1\)的题解 我也来发一篇。(别的题目不会别瞎bb)

题目大意就是

\(T\) 秒 能走多少路程

第一行六个整数 \(T,N,L,R,X,K\)

接下来 \(T\) 行,每行两个整数 \(x,y\) 表示这一秒的操作。

我们设档为\(D\),转速为\(V\)

首先 \(D = 1\) ,\(V = L\) 。

\(x == 1\) \(D++\),\(V=L\)

\(x == 2\) \(D--\),\(V=R\)

\(y == 0\) \(V+=X\)

\(V > R\) 则 \(V=R\)(即\(V=min(V+X,R)\))

连续\(K\)秒 \(V=R\) 则停止。

得出

if(V == R) cnt ++ ;
if(V != R) cnt = 0 ;
if(cnt == K) break ;

特别注意的一点 是 特判\(-1\)

if(D == N+1 or D == 0) return printf("-1"),0;

完整代码如下。

//完整代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL ;
inline LL In() { LL res(0),f(1); register char c ;
while(isspace(c=getchar())) ; c == '-'? f = -1 , c = getchar() : 0 ;
while(res = (res << 1) + (res << 3) + (c & 15) , isdigit(c=getchar())) ;
return res * f ;
} LL T , N , L , R , X , K ;
LL D , V ;
signed main () {
T = In() ; N = In() ; L = In() ; R = In() ; X = In() ; K = In() ;
D = 1 , V = L ;
LL ans = 0 ;
LL cnt = 0 ;
for(register int i = 1 ; i <= T ; i++) {
int x , y ;
x = In() , y = In() ;
if(x == 0) D ++ , V = L ;
if(x == 1) D -- , V = R ;
if(D == N+1 or D == 0) return printf("-1"),0;
if(y) V = V+X>R?R:V+X;
if(V == R) cnt ++ ;
if(V != R) cnt = 0 ;
ans += D * V ;
if(cnt == K) break ;
}
cout << ans ;
return 0 ;
}

随机推荐

  1. Linux之awk用法

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  2. Java:冒泡排序 | 二分查找

    2018-10-29 20:16:46 冒泡排序 例子(对数字排序): 假设有这样一组数字:32, 8, 128, 2, 64 现在对其进行冒泡排序(*表示下次比较的开始数字): 32>8? t ...

  3. MessageFormat理解,MessageFormat.format(Object obj)方法

    MessageFormat.format(Object obj)方法主要用途为拼接message信息 用法: Object[] testArgs = {new String("张三" ...

  4. Docker学习总结(18)——阿里超大规模Docker化之路

    12月6-7日,由阿里巴巴集团.阿里巴巴技术发展部.阿里云云栖社区联合主办,以"2016双11技术创新"为主题的阿里巴巴技术论坛上,阿里巴巴研究员林昊分享了阿里超大规模Docker ...

  5. RNN and Language modeling in TensorFlow

    RNNs and Language modeling in TensorFlow From feed-forward to Recurrent Neural Networks (RNNs) In th ...

  6. noip模拟赛 蒜头君救人

    分析:之前的一道模拟赛题是dp+dfs,这道题是dp+bfs. 我们设f[stu][i][j]为当前状态为stu,走到(i,j)的答案,考虑怎么设计stu,每个人的状态有3种:要么在原地,要么被背着, ...

  7. 页面加载即执行JQuery的三种方法

    [1]$(function( ){ }): $(function(){ $("#name").click(function(){ //adding your code here } ...

  8. 工资(money)

    (money/money.in/money.out) 时限1000ms 内存256MB 聪哥在暑假参加了打零工的活动,这个活动分为n个工作日,每个工作日的工资为Vi.有m个结算工钱的时间,聪哥可以自由 ...

  9. SiteMesh2-简介

    简介: SiteMesh类似与ASP.NET的模板页. SiteMesh是由一个基于Web页面布局.装饰以及与现存Web应用整合的框架.它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观,如 ...

  10. C++中设计一个类,使其不能继承

    1.C++11中已经有了final关键字:它的作用是指定类的虚函数不能被该类的继承类覆盖(override),或者是指定一个类成为一个不能被继承的类(final class) 2.派生类用调用基类的构 ...