天天看點

NOIP2016提高組Day1T1(玩具謎題)題解題目資訊解題思路代碼實作

文章目錄

  • 題目資訊
  • 解題思路
  • 代碼實作

題目資訊

題目傳送門

解題思路

  • 移動方向隻取決于兩個因素:面朝方向和向左還是右走。
  • 通過數組模拟,大于n則%=n(轉了一圈還是起點),小于0要 += n(至少要走到起點後)。

代碼實作

#include <bits/stdc++.h> 
using namespace std;
const int N = 1e5 + 5;
bool dir[N];
string name[N]; 
int main() {
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < n; ++i) {
		cin >> dir[i] >> name[i];
	}
	int index = 0;
	for (int i = 0; i < m; ++i) {
		int a, s;
		cin >> a >> s;
		s %= n;
		if (a + dir[index] == 1) {
			index += s;
		} else {
			index -= s;
		}
		index %= n;
		if (index < 0) {
			index += n;
		}
	}
	cout << name[index] << '\n';
	return 0;
} 
           

繼續閱讀