一道好题。

首先是数据范围。


0<N≤10^10 ,0 ≤M≤10^10,且N为偶数


这是这道题的坑点,也是痛点。

10^10表示这这道题必有规律。

那么,first step,我们先探索规律。

以下表格中,前n列表示纸牌变化,最后一列表示1的位置。


1 2 1

2 1 2

1 2 1


1 2 3 4 1

3 1 4 2 2

4 3 2 1 4

2 4 1 3 3

1 2 3 4 1


1 2 3 4 5 6 1

4 1 5 2 6 3 2

2 4 6 1 3 5 4

1 2 3 4 5 6 3


那么,从一的位置,我们可以看出, 对于当前位置n,纸牌数量a,来说:

若n<a/2 n=n*n;

若n>a/2 n=(n-a/2)*2-1;


附上代码:

 while(k!=a/2+1)
{
if(k<=a/2)
{
k=k*2;
o++;
continue;
}
if(k>a/2)
{
k=(k-a/2)*2-1;
o++;
continue;
}
}

有了这个以后,我们可以相当程度上简化此问题。

那么第二步,还原。

还是看上表中一的位置

1->2->1

1->2->4->3->1

1->2->4->1

规律如下

如果n%2==0 n=n/2;

else n=(n+1)/2+a/2;

附上代码:


for(int i=1;i<=b;i++)
{
if(c%2==1)
{
c=(c+1)/2+a/2;
continue;
}
if(c%2==0)
{
c=c/2;
continue;
}
}

【[AHOI2005]洗牌 题解的更多相关文章

  1. 【BZOJ1965】[AHOI2005]洗牌(数论)

    [BZOJ1965][AHOI2005]洗牌(数论) 题面 BZOJ 洛谷 题解 考虑反过来做这个洗牌的操作,假定当前牌是第\(l\)张. 因为之前洗的时候考虑了前一半和后一半,所以根据\(l\)的奇 ...

  2. [luogu P2054] [AHOI2005]洗牌

    [luogu P2054] [AHOI2005]洗牌 题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学 ...

  3. P2054 [AHOI2005]洗牌

    P2054 [AHOI2005]洗牌 题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度 ...

  4. 洛谷——P2054 [AHOI2005]洗牌(扩展欧几里得,逆元)

    P2054 [AHOI2005]洗牌 扩展欧拉定理求逆元 $1 2 3 4 5 6$$4 1 5 2 6 3$$2 4 6 1 3 5$$1 2 3 4 5 6$ 手推一下样例,你就会发现是有规律的: ...

  5. 题解luoguP2054 BZOJ1965【[AHOI2005]洗牌】

    题目链接: https://www.luogu.org/problemnew/show/P2054 https://www.lydsy.com/JudgeOnline/problem.php?id=1 ...

  6. 洛谷P2054 [AHOI2005]洗牌(扩展欧几里德)

    洛谷题目传送门 来个正常的有证明的题解 我们不好来表示某时刻某一个位置是哪一张牌,但我们可以表示某时刻某一张牌在哪个位置. 设数列\(\{a_{i_j}\}\)表示\(i\)号牌经过\(j\)次洗牌后 ...

  7. BZOJ 1965 [AHOI2005]洗牌

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...

  8. [BZOJ1965][AHOI2005] 洗牌 - 扩展欧几里得

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...

  9. [AHOI2005]洗牌

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...

随机推荐

  1. python之路-python2.x与python3.x区别

    Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Python2.x 与 Python3.x的区别: python2.x:源码混乱,重复代码较多,冗余. python3.x:源码规范,崇 ...

  2. 【教程】CRX格式插件不能离线安装?本地扩展CRX无法安装怎么办?

    http://www.cnplugins.com/zhuanti/how-to-make-crx-install.html

  3. R语言最优化(多维)

    线性搜索的最速上升法 #### max.search <- function(f, x, y, tol=1e-9, a.max = 2^5){ if(sum(abs(y)) == 0) retu ...

  4. java ee 思维导图

    http://download.csdn.net/download/g290095142/10149996 这是原地址,我觉得很棒,就下载下来用xmind看了看,发现很全面的.

  5. Android N 的开机启动流程概述

    原地址:https://blog.csdn.net/h655370/article/details/77727554 图片展示了Android的五层架构,从上到下依次是:应用层,应用框架层,库层,运行 ...

  6. mysql插入中文报错的问题

    报错:1366, "Incorrect string value: '\\xE6\\xB7\\xB1\\xE5\\x85\\xA5...' for column ' 由于公司原因之前一直在使 ...

  7. java算法02 - 树

    树是一类重要的非线性结构.而二叉树是一种比较重要的树,接下来我们来了解二叉树的相关内容. 二叉搜索树:每个节点都不比它左子树的任意元素小,而且不比它的右子树的任意元素大. /** * 二叉搜索树 O( ...

  8. 为什么Python是最适合初创公司的编程语言?

    为什么Python是最适合初创公司的编程语言? 选自Medium 作者:Gleb Pushkov 京东云开发者社区编译 对于初创公司而言,要在众多编程语言中为公司选择一个正确.合适的语言绝非易事. 如 ...

  9. JS属性修改

    document.getElementById('p1').style.visibility='visible' document.getElementById('p1').style.visibil ...

  10. SLAM for dummies中文翻译

    1.简介 本文的主要目的是简单介绍移动机器人领域中广泛应用的技术SLAM(同步定位与地图绘制)的理论基础以及应用细节.虽然目前存在很多关于SLAM技术的方方面面的论文,但是对于一个新手来说,仍然需要花 ...