题目转为进制化来做
发布日期:2021-06-29 11:10:06
浏览次数:3
分类:技术文章
本文共 1877 字,大约阅读时间需要 6 分钟。
杭电5670Machine
有一个机器,它有 m (2\leq m\leq 30)m(2≤m≤30) 个彩灯和一个按钮。每按下按钮时,最右边的彩灯会发生一次变换。变换为:
- 如果当前状态为红色,它将变成绿色;
2.如果当前状态为绿色,它将变成蓝色;
3.如果当前状态为蓝色,它将变成红色,并且它左边的彩灯(如果存在)也会发生一次变换。
初始状态下所有的灯都是红色的。
询问按下按钮 n (1\leq n< {2}^{63})n(1≤n<2 63 ) 次以后各个彩灯的颜色。 输入描述 输入包含多组数据. 第一行有一个整数T (1\leq T\leq 15)T(1≤T≤15), 表示测试数据的组数. 对于每组数据: 唯一的一行包含2个整数 m (2\leq m\leq 30)m(2≤m≤30) 和 n (1\leq n< {2}^{63})n(1≤n<2 63 ) 。 输出描述 对于每组数据,输出一个长度为mm的字符串,表示从左到右mm个彩灯的颜色。 R代表红色;G代表绿色;B代表蓝色。 输入样例 2 3 1 2 3 输出样例 RRG GR我只想说被坑了。一道水题然而被题目坑了,可能也是自己想多了。题目的左边,一直以为是他的左边所有的灯,然而真正的意图是左边的一个。知道题目意思了后,其实是一道水题了,一下子就可以找到规律吧。
初始化R==0;G==1;B==2;
第m个灯的状态就是三次一循环,则可以是n%3; 第m-1个灯的状态就是n%3^2%3^2====n/3,之后再%3; 之后的就可以变成了一个循环。for(i = m; i >= 1; i--){ a[i] = n%3; n = n/3; }
然而发这个博客的主要原因不是这个。而是听了别人说这题的做法后,发现思维真的很奇特,要学习学习所以发这篇博客,还是先看看他们的方法把。转化为3进制,刚开始听到3进制的时候,顿时间超无语的,怎么与三进制有关啊。我也是顿时进无语了了。后来听了解释之后,顿时间惊呆了,这跟我那找规律完全不是一个档次哒。
转化为3进制,其实前面已经有点矛头了,初始化R==0;G==1;B==2;
0,1,2不就是3进制的基数吗?并且他那种变化,不知道你们注意没,是不是进位,对的,就是进位。是不是很简单了。 无语了,for(i = 1; i <= n; i++){ a[m]++; a[m] = a[m]%3; l = a[m]; while(l == 0){ a[m-1] = a[m-1]+1; a[m-1] = a[m-1]%3; l = a[m-1]; } }
然而只是超时代码,突然间还是没有转过来啊。其实这个答案就是n转化为3进制的结果,还注意一下那个最后还要取摸一下就OK了。
码上学姐的代码,真心不想打了。#include#include #include #include #include using namespace std;char s[]={ 'R','G','B'};int main(){ long long int m,n,x,y; int i,t; cin>>t; while(t--) { char b[100]; cin>>m>>n; int rel = 0; int mul = 1; for(i=1;i<=m;i++){ mul*=3; } n %= mul; while(n) { y = n%3; b[rel++] = s[y]; n /= 3; } for(i=1;i<=m-rel;i++) cout<<"R"; for(i=rel-1;i>=0;i--) cout<
转载地址:https://blog.csdn.net/zw1996/article/details/51224722 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月14日 06时34分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
值得收藏!268条PCB layout设计规范
2019-04-29
Keil升级了,Keil Studio 来了!
2019-04-29
关于RS-485总线,这篇很详细
2019-04-29
关于2021年电赛的一些想法,看到就是赚到!
2019-04-29
教你一秒分辨真假芯片!
2019-04-29
抽奖 | 送STM32开发板
2019-04-29
光立方,永远的神!
2019-04-29
学习STM32很简单?
2019-04-29
电赛 | 电源题软件如何准备?
2019-04-29
手把手教你DIY一款属于自己的万能红外遥控器!
2019-04-29
速看 | 电子元器件如何确定好坏?
2019-04-29
485通信自动收发电路,历史上最详细的解释
2019-04-29
【视觉盛宴三】不好意思,这些线材接口的横截面真的没见过
2019-04-29
一位头发发白的神人教你怎么写程序,运维,买电脑,写文章,平面设计!
2019-04-29
【第二期】那些设计漂亮、有创意的电路板!
2019-04-29
【第三期】那些设计漂亮、有创意的电路板!
2019-04-29
继续推荐公众号~
2019-04-29
「第二篇」全国一等奖,经验帖。
2019-04-29
「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
2019-04-29
5G小科普(漫画版,So easy!)
2019-04-29