P1563 [NOIP2016 提高组] 玩具谜题

Posted Kunkun只喝怡宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1563 [NOIP2016 提高组] 玩具谜题相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

代码

1、每个玩具人的朝向用结构体来存储
2、对于每个命令,如果其方向和玩具人的朝向一样的话就向数组减小方向移动,反之往数组增大方向移动,注意判断移动越界的情况,另加处理。

#include<bits/stdc++.h>

using namespace std;

struct People{
	int toward;
	string job;
};
int main(){
	int n,m,i,j=0,a,b;
	People people[100000];
	cin>>n>>m;
	for(i=0;i<n;i++)
		cin>>people[i].toward>>people[i].job;
	for(i=0;i<m;i++){
		cin>>a>>b;
		if(a==people[j].toward){
			if(j-b>=0) j-=b;
			else j=n+(j-b)%n;
		}else{
			if(j+b<n) j+=b;
			else j=(j+b)%n;
		}
	}
	cout<<people[j].job;
	return 0;
}

以上是关于P1563 [NOIP2016 提高组] 玩具谜题的主要内容,如果未能解决你的问题,请参考以下文章

NOIP提高组 2016D1T1 玩具谜题

算法1-1模拟与高精度

做题记录:P1563 玩具谜题

luogu P1563 玩具谜题

P1563 玩具谜题

洛谷 P1563 玩具谜题模拟/环