题解 P5269 【欧稳欧再次学车】

引领天下

2019-03-23 21:51:39

Solution

这题目其实就是基本的模拟 直接按题目说的搞即可。 具体看代码 ```cpp #include <bits/stdc++.h> using namespace std; long long t,n,l,r,q,k,dang=1,zhuan,stop,s;//t,n,l,r,q,k含义如题,dang为当前档位,stop为速度为r的持续秒数,s为答案 //注意,三年OI一场空,不开longlong见祖宗 int main(){ scanf ("%lld%lld%lld%lld%lld%lld",&t,&n,&l,&r,&q,&k),zhuan=l;//初始化:转速=l,档位=1 while (t--){ long long x,y; scanf ("%lld%lld",&x,&y); if (x==0)dang++,zhuan=l; else if (x==1)dang--,zhuan=r;//模拟换挡 if (dang>n||dang<1)return !printf("-1");//换挡把车搞坏了,结束 if (y)zhuan=min(r,zhuan+q);//踩油门 s+=zhuan*dang;//能跑多少是多少 if (zhuan==r)stop++; else stop=0;//连续跑了r的秒数的计算 if (stop==k)break;//发动机被玩坏了,退出 } printf ("%lld",s); } ```