题解 P5269 【欧稳欧再次学车】 发表于 2019-03-23 | 更新于 2019-06-25 | 评论数: | 阅读次数: 本文字数: 1.1k | 阅读时长 ≈ 1 分钟 三年OI一场空,不开long long 见祖宗 一道模拟题,具体解释在代码里: Code1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include<bits/stdc++.h>using namespace std;int t,n,l,r,x,k;long long dang,zhuan;//一定要开long long !!!long long ans;int main(){// freopen("1.out","w",stdout); scanf("%d%d%d%d%d%d",&t,&n,&l,&r,&x,&k); zhuan=l;//zhuan存放转速 dang=1;//dang存放档位 int flag=0; for(int i=1;i<=t;i++) { int xx,yy; scanf("%d%d",&xx,&yy); if(xx==0)//升档 { if(dang==n) //如果dang已经到达了n,那么是非法序列 { cout<<"-1"; return 0; } dang++; zhuan=l;//转速调整为l } if(xx==1)//降档 { if(dang==1) //如果dang是1,那么是非法序列 { cout<<"-1"; return 0; } dang--; zhuan=r;//转速调整为r } if(yy==1)//踩油门 { zhuan+=x;//转速加上x if(zhuan>r) zhuan=r;//对r取min } ans+=zhuan*dang //一定要在发动机有没有爆炸前加 if(zhuan==r) { flag++; if(flag==k)//爆炸 { cout<<ans; return 0; } } else flag=0; } printf("%lld",ans); return 0;}