【[AHOI2005]洗牌 题解
一道好题。
首先是数据范围。
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]洗牌 题解的更多相关文章
- 【BZOJ1965】[AHOI2005]洗牌(数论)
[BZOJ1965][AHOI2005]洗牌(数论) 题面 BZOJ 洛谷 题解 考虑反过来做这个洗牌的操作,假定当前牌是第\(l\)张. 因为之前洗的时候考虑了前一半和后一半,所以根据\(l\)的奇 ...
- [luogu P2054] [AHOI2005]洗牌
[luogu P2054] [AHOI2005]洗牌 题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学 ...
- P2054 [AHOI2005]洗牌
P2054 [AHOI2005]洗牌 题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度 ...
- 洛谷——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$ 手推一下样例,你就会发现是有规律的: ...
- 题解luoguP2054 BZOJ1965【[AHOI2005]洗牌】
题目链接: https://www.luogu.org/problemnew/show/P2054 https://www.lydsy.com/JudgeOnline/problem.php?id=1 ...
- 洛谷P2054 [AHOI2005]洗牌(扩展欧几里德)
洛谷题目传送门 来个正常的有证明的题解 我们不好来表示某时刻某一个位置是哪一张牌,但我们可以表示某时刻某一张牌在哪个位置. 设数列\(\{a_{i_j}\}\)表示\(i\)号牌经过\(j\)次洗牌后 ...
- BZOJ 1965 [AHOI2005]洗牌
题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...
- [BZOJ1965][AHOI2005] 洗牌 - 扩展欧几里得
题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...
- [AHOI2005]洗牌
题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...
随机推荐
- Mysql数据字典导出
1.phpmyadmin中自带的数据字典导出 2.利用下面的脚本: <?php /** * 生成mysql数据字典 */ header("Content-type: text/html ...
- 读取properties配置文件,value值为中文时出现乱码
已确保idea工具默认设置都是UTF-8格式: 然后在配置类上,指定编码: @PropertySource(value = "classpath:short_message.prop ...
- python基础之作业1---用户登录
作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 import sys, os, getpass os.system('clear')i = 0while i < 3: ...
- java ee 思维导图
http://download.csdn.net/download/g290095142/10149996 这是原地址,我觉得很棒,就下载下来用xmind看了看,发现很全面的.
- Python3的基础
Python的3.0版本,常被称为Python 3000,或简称Py3k. 关于Python版本的下载:https://www.python.org/,以及Anaconda的下载:https://ww ...
- 使用idea启动springMVC+Hibernate其他项目
打开项目后打开Project Structure 点开左边的Libraries 加入依赖包 点开左边的Moudules 选中项目 新建Web,Spring,Hibernate三项 Hibernate添 ...
- 前端车牌识别SDK算法提取
同行业中,别人标配有的产品我有,别人没有的产品我们也有,如此才能增强竞争力,通过优化创新,前端车牌识别SDK功能,性能上,都是行业NO.1的水平.车牌识别sdk这个用于越来越多人集成了,汽车保有量日益 ...
- ansible-play变量的基本应用
--- - host: appsrvs remote_user: root tasks: - name: install package yum: name={{ pkname }} - name: ...
- 幽灵自建的html5 的模板文件!
<!-- ,s555SB@@& :9H####@@@@@Xi 1@@@@@@@@@@@@@@8 ,8@@@@@@@@@B@@@@@@8 :B@@@@X3hi8Bs;B@@@@@Ah, , ...
- C# 索引和长度必须引用该字符串内的位置 LENGTH
今天遇到了 索引和长度必须引用该字符串内的位置 的问题. 原因是实用 Substring 对字符串进行了前五位的截取,但是忽略了字符串本身不足五位的情况. 如果不足五位,直接将整个字符串赋值过来,添加 ...