【题解】P1563 玩具谜题
题面
前言
好恶心,云落讨厌大量的分支结构
正文
定义一个结构体 $ p_i= \lbrace fc_i,nm_i \rbrace $ 表示编号为 $ i $ 的小人的朝向与姓名
由题意,分四类讨论顺逆时针,维护一个 $ now $ 指针,每次更新即可
答案为 $ nm_{now} $
环形结构警告!
代码
#include<iostream>
using namespace std;
const int maxn=1e5+10;
struct node{
int fc;
string nm;
}p[maxn];
int n,m;
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>p[i].fc>>p[i].nm;
}
int now=0;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
if(p[now].fc==0&&x==0){
now=(now+n-y)%n;
}else if(p[now].fc==0&&x==1){
now=(now+y)%n;
}else if(p[now].fc==1&&x==0){
now=(now+y)%n;
}else if(p[now].fc==1&&x==1){
now=(now+n-y)%n;
}
}
cout<<p[now].nm<<endl;
return 0;
}
后记
好像一个不小心手滑贴错代码了呢!
完结撒花!

浙公网安备 33010602011771号