出的挺有意思的一个题目
中间卡住了一点点
不过整体来看还不算难
#include<stdio.h>
int main() {
int T;
scanf("%d",&T);
while(T--) {
int M,fl=0,sum=0;
char s[20];
scanf("%d",&M);
while(M--) {
scanf("%s",s);
if(s[0]=='I')
fl++;
else if(s[0]=='O')
fl--;
else {
int t;
scanf("%d",&t);
t*=60;
int cnt=fl;
while(cnt--) {
t/=20;
}
sum+=t;
}
}
printf("%d
",sum);
}
return 0;
}
标程的简化是直接用可运算的数字来代表梦境层数
从而简化运算
#include<iostream>
#include<string>
using namespace std;
int main() {
int m;
string s;
cin>>m;
while(m--) {
int p=1,n,t=0,tt;
cin>>n;
while(n--) {
cin>>s;
if(s=="STAY") {
cin>>tt;
t+=tt*60/p;
} else if(s=="IN") p*=20;
else p/=20;
}
cout<<t<<endl;
}
}
题目地址:【NYOJ】[125]盗梦空间