洛谷题解 CF777A 【Shell Game】

2022-10-30,,

同步题解

\(QAQ\)


题目翻译(可能有童鞋没读懂题面上的翻译)

给你三张牌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;
}

洛谷题解 CF777A 【Shell Game】的相关教程结束。

《洛谷题解 CF777A 【Shell Game】.doc》

下载本文的Word格式文档,以方便收藏与打印。