CodeForces - 777A Shell Game

题意:给你三个帽子,然后在帽子下面放一个球,然后盖住,不停的移动帽子,最后让你猜那个球在哪个帽子下面。
因为他移动的方法很固定,左边和中间的帽子交换 右边和中间的帽子交换 左边和中间的帽子交换 不停的循环。
(操作员在奇数移动(第一、第三、第五等)时总是用左壳和中壳交换,在偶数移动(第二、第四等)时总是用右壳交换。)
输入n 、 m 分别代表 交换了n次 m为球最后那个帽子下面的编号 叫你输出球最初在哪个帽子下面。
状态数就三个情况,球在左边帽子下面, 中间帽子下面 ,右边帽子下面。

注意:找规律
手动打表发现6次一循环,所以每次用n%6找到所在位置即可

#include<iostream>
using namespace std;
long long n;
int x;
int a[6][3]={{0,1,2},{1,0,2},{1,2,0},{2,1,0},{2,0,1},{0,2,1}};
int main()
{
    cin>>n>>x;
    n=n%6;
    cout<<a[n][x];
    return 0;
}

发布了35 篇原创文章 · 获赞 0 · 访问量 706

猜你喜欢

转载自blog.csdn.net/fendouzhilu666/article/details/102863679