题解:P14505 [NCPC 2025] km/h
题目传送门
解析
题目想让我们根据输入推测题目中的“国家限速”。因为国家限速严格大于任意一个限速标志的限速,还是个整十数,所以我们在当前的输入中,找到比它大的最小整十数,与我们之前记录过的国家速度取较大值,就是我们“根据目前为止看到的标志”所能判断出的最保险的国家限速。
题目要求输出当前能够合法行驶的最高车速,对于每个限速标志输入,直接输出它的限速即可。输入解除限速标志时,因为它“会取消之前的限制并恢复国家限速”,所以此时要输出我们已经计算的国家限速。注意解除限速标志不是只解除上一个限速标志,而是直接恢复国家限速。
Code
#include <bits/stdc++.h>
using namespace std;
int n,maxx;
string l;
int main(){
cin >> n;
while(n--){
cin >> l;
if(l[0]=='/'){
cout << maxx << "\n";//国家限速
}else{
int len=l.size(),flag=0;
for(int i=len-1,j=1;i>=0;i--,j*=10) flag+=(l[i]-'0')*j;//将字符串转化为数字
cout << flag << "\n";
maxx=max(maxx,flag/10*10+10/*除以10取其十位,乘10后加十就是大于这个数的最小整十数*/);
}
}
return 0;
}