2021牛客OI赛前集训营-提高组(第四场) T2空间跳跃
2021牛客OI赛前集训营-提高组(第四场)
题目大意
给你三个整数 n , d , l n,d,l n,d,l, n n n为正整数、负整数或0, d , l d,l d,l为正整数,你现在有一个数 k = 1 k=1 k=1,请你用以下三种操作,将 k k k的值变为 n n n
- 如果 min ( ∣ k ∣ , ∣ k − d ∣ ) ≤ l \min(|k|,|k-d|)\leq l min(∣k∣,∣k−d∣)≤l,将 k k k变为 k − d k-d k−d
- 将 k k k变为 2 k 2k 2k
- 如果 k ≡ 1 ( m o d 3 ) k\equiv 1\pmod3 k≡1(mod3),将 k k k变为 n − 1 3 \dfrac{n-1}{3} 3n−1
求将初始的 k k k(此时 k = 1 k=1 k=1)的值变为 n n n的操作方法,注意操作次数不能超过 1500 1500 1500。
题解
我们把构造的过程反过来,从 n n n到 1 1 1构造,那么操作 2 2 2和操作 3 3 3可以看做 n = n / 2 n=n/2 n=n/2和 n = 3 n + 1 n=3n+1 n=3n+1。可以想到角谷猜想。
如果 n n n为正整数,那么一定能让 n n n变为 1 1 1。
如果 n n n为负整数或0,则经过角谷猜想的操作,那么一定能使 n n n变为在 − 100 -100 −100到 0 0 0之间的整数。那么显然 ∣ n ∣ ≤ l |n|\leq l ∣n∣≤l,我们不断让 n n n变为 n + d n+d n+d,直到 n > 0 n>0 n>0,然后再用角谷猜想的操作让 n n n变为 1 1 1即可。
这样操作的次数并不会超过 1500 1500 1500次,实际上大部分都在 200 200 200到 300 300 300步左右。
code
#include<bits/stdc++.h>
using namespace std;
int q,d,l,n,re,ans[10005];
void dd(int i){while(i!=1&&i!=0&&i!=-1&&i!=-5&&i!=-17){if(i%2) i=i*3+1;else i/=2;ans[++ans[0]]=i;}re=i;
}
int main()
{scanf("%d%d%d",&q,&d,&l);while(q--){ans[0]=0;scanf("%d",&n);if(n==0){printf("1 1 0\n");continue;}ans[++ans[0]]=n;dd(n);while(re<=0){re+=d;ans[++ans[0]]=re;}dd(re);printf("%d ",ans[0]-1);while(ans[0]){printf("%d ",ans[ans[0]]);--ans[0];}printf("\n");}return 0;
}
2021牛客OI赛前集训营-提高组(第四场) T2空间跳跃相关推荐
- 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
正题 题目链接:https://ac.nowcoder.com/acm/contest/20110/D 题目大意 求一个长度为nnn的字符串的所有子串的borderborderborder长度和. 1 ...
- 2021牛客OI赛前集训营-提高组(第五场)C-第K排列【dp】
正题 题目链接:https://ac.nowcoder.com/acm/contest/20110/C 题目大意 一个长度为nnn的字符串SSS,SSS中存在一些???,有N/O/I/PN/O/I/P ...
- 2020牛客NOIP赛前集训营提高组(第四场)B-色球【链表】
正题 题目链接:https://ac.nowcoder.com/acm/contest/7611/B 题目大意 nnn个杯子,mmm个操作 在第zzz个杯子中依次加入xxx个颜色为yyy的球 在第yy ...
- 【2020牛客NOIP赛前集训营-提高组(第一场)题解】( 牛牛的方程式,牛牛的猜球游戏,牛牛的凑数游戏,牛牛的RPG游戏)
未完待续... T1:牛牛的方程式 title solution code T2:牛牛的猜数游戏 title solution code T3:牛牛的凑数游戏 title solution code ...
- 2020牛客NOIP赛前集训营-提高组(第一场) T2 牛牛的猜球游戏
题目链接: 牛客原站 通过记录: 题目链接2:T277380 牛牛的猜球游戏(被我们搬到洛谷力): 洛谷搬运 题目描述 有十个数 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ...
- 【2020牛客NOIP赛前集训营-提高组(第二场)】题解(GCD,包含,前缀,移动)
文章目录 T1:GCD title solution code T2:包含 title solution code(正解code补充在上面了) T3:前缀 title solution code T4 ...
- 2020牛客NOIP赛前集训营-提高组(第三场)C-牛半仙的妹子Tree【虚树,最短路】
正题 题目链接:https://ac.nowcoder.com/acm/contest/7609/C 题目大意 给出nnn个点的一棵树,mmm个时刻各有一个操作 标记一个点,每个点被标记后的每一个时刻 ...
- 2020牛客NOIP赛前集训营-提高组(第六场)A-袜子分配【组合数学,结论】
正题 题目链接:https://ac.nowcoder.com/acm/contest/7615/A?&headNav=acm&headNav=acm 题目大意 nnn对颜色一样的袜子 ...
- 2020牛客NOIP赛前集训营-普及组第三场C牛半仙的妹子树
链接:https://ac.nowcoder.com/acm/contest/7608/C 来源:牛客网 牛半仙有 n 个妹子,她们所在的位置组成一棵树,相邻两个妹子的距离为 1. 有 m 个妹 ...
最新文章
- CSS样式----标记选择器
- 美国计算机专业录取率,美国留学高录取率院校计算机专业申请条件是什么? 爱问知识人...
- 隐藏画质代码_【和平精英】变成恐怖精英?玩家在墙上发现了一幅隐藏的壁画!...
- akae-arm9异常
- 深入理解分布式技术 - 两阶段的应用 MySQL XA 规范
- 解决iIntelliJ IDEA导入jstl后,jsp中taglib指令无法自动添加uri地址
- 有一种情人节叫,别人家的情人节......
- java 模拟form_java模拟form上传数据
- tensorflow随笔-底层梯度
- javascript foreach中获取数组下标/index
- 1011 A+B 和 C (15分)
- UI(1)---2018 UI 设计趋势
- 利用swoole coroutine协程实现redis异步操作
- Strategy模式的一点思考
- windows 10字体突然变小变细,模糊
- 又订阅了万维刚的精英日课
- html页面导出pdf截断问题,html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案...
- workbook 读取excel表格
- rewind函数+php,PHP SplFixedArray rewind()用法及代码示例
- 用计算机设计软件,平面设计中计算机设计软件的作用
热门文章
- LeetCode26 删除有序数组中的重复项
- CSS3打造不断旋转的CD封面
- Uncaught URIError: URI malformed
- 小哈哥开知识星球了,希望小哈哥可以陪伴你们一起成长【小哈和他的朋友们】
- 有限理性建模的方法和计算机平台,一类有限理性的建模和决策分析方法是的研究.docx...
- 【初学者】SVG图片加载失败,求解
- 努比亚出售中兴物联全部股权 此前占股90%
- MySQL基础篇(上,超详细)
- 微服务技术初探:基于IDEA使用Maven构建SpringCloud项目
- python图片加水印