给你三张牌0,1,2。
最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张......
最后问牌x
在哪个位置。
OK懂了吗?这就是样例中两个数的来历QAQ。
我们可以发现:0,1,2
这三个数可以经过变化变成如下的情况:
{0,1,2},{1,0,2},{1,2,0},{2,1,0},{2,0,1},{0,2,1},
//上为六种情况。
{0,1,2}
//最后一个循环。
我们把它预处理一下,再看看x
对应的是哪一种组合,输出该组合的0/1/2
即可;
#include<bits/stdc++.h>
using namespace std;
int a[10][5]={{0,1,2},{1,0,2},{1,2,0},{2,1,0},{2,0,1},{0,2,1}}; //六种情况
int mian()
{
int n,m;
cin>>n>>m;
cout<<a[n%6][m]<<endl; //n%6即为对应情况,m对应x。
return 0;
}
原文:https://www.cnblogs.com/Garbage-Only-one/p/10350970.html