题解 洛谷P5259【欧稳欧再次学车】
实际上没什么可说的,暴力大模拟就好。
一定要开long long!
一定要开long long!
一定要开long long!
(不然会炸数据的!!!)
//Stand up for the faith! #include<bits/stdc++.h> #define LL long long #define US unsigned US LL t,n,l,r,x,k; US LL a,b,v,dang=1; US LL sec=0,move=0; using namespace std; int main() { scanf("%lld%lld%lld",&t,&n,&l); scanf("%lld%lld%lld",&r,&x,&k); v=l; //记得把转速赋初值 for(long i=0;i<t;i++) { scanf("%d%d",&a,&b); if(a==0) v=l,dang++; else if(a==1) v=r,dang--; /* 按要求变档 */ if(dang>n||dang<1) //变档越界 { printf("-1"); return 0; /* 有时return 0比break要好用 */ } if(b==0); //既然没踩油门,什么都不管就好 else if(b==1) { v=min(v+x,r); } if(v==r) sec++; //计秒 else sec=0; /* 这里记得,如果v不等于r,把计秒清零 */ move+=v*dang; if(sec==k) break;//计秒达到要求,刹车 } printf("%lld",move); return 0; }