CF1703C Cypher 题解
题意:模拟一个 \(n\) 位密码锁。
做法:直接模拟,注意往后推,即若为 \(U\) 变为 \(D\),若为 \(D\) 变为 \(U\)。注意 \(0\) 和 \(9\) 进行操作时的特判。
#include<cstdio>
#include<iostream>
using namespace std;
int s[105];
int t,n;
char a;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&s[i]);
}
int m;
for(int i=1;i<=n;i++){
scanf("%d",&m);
for(int j=1;j<=m;j++){
scanf(" %c",&a);
if(a=='D'){
s[i]++;
if(s[i]==10) s[i]=0;
}
else if(a=='U'){
s[i]--;
if(s[i]==-1) s[i]=9;
}
}
}
for(int i=1;i<=n;i++){
printf("%d ",s[i]);
}
printf("\n");
}
return 0;
}

浙公网安备 33010602011771号