1.题目介绍
2.题解
2.1 模拟
思路
有一个大坑,题目给你的小人顺序是按逆时针给的,不是顺时针!!!跟顺时针相比掉一下顺序就行。
看似一共有四种情况:[0,0],[0,1],[1,0],[1,1], 其实可以简化分为两种情况,因为[0,0]和[1,1]都代表你要顺时针数,[1,0],[0,1]都代表你要逆时针数
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
pair<int, string> memPair[n];
for(int i = 0; i < n; i++){
int dir;
string job;
cin >> dir >> job;
memPair[i] = make_pair(dir, job);
}
int curr = 0;
for(int j = 0; j < m; j++){
int lOrR, num;
cin >> lOrR >> num;
if(memPair[curr].first == lOrR){
curr = (curr - num + n) % n;
}
else {
curr = (curr + num) % n;
}
}
cout << memPair[curr].second;
}
标签:NOIP2016,curr,int,P1563,谜题,lOrR,memPair,num,dir
From: https://www.cnblogs.com/trmbh12/p/17989797