CodeForces - 777A Shell Game

mac2025-12-12  2

题意:给你三个帽子,然后在帽子下面放一个球,然后盖住,不停的移动帽子,最后让你猜那个球在哪个帽子下面。 因为他移动的方法很固定,左边和中间的帽子交换 右边和中间的帽子交换 左边和中间的帽子交换 不停的循环。 (操作员在奇数移动(第一、第三、第五等)时总是用左壳和中壳交换,在偶数移动(第二、第四等)时总是用右壳交换。) 输入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; }
最新回复(0)