• 洛谷题解 CF777A 【Shell Game】


    同步题解

    (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;
    }
    
  • 相关阅读:
    async中series的实现 javascript构件
    6.算法-计数排序
    5.算法-快速排序
    4.堆排序
    3.分治法研究-搜索数组中的最长连续递增子集
    字典树(Trie)学习笔记
    并查集笔记
    求树的遍历
    P1087 FBI树
    P5017 摆渡车
  • 原文地址:https://www.cnblogs.com/Garbage-Only-one/p/10350970.html
Copyright © 2020-2023  润新知