HDU5670Machine(抽象进制)
有一个机器,它有 m (2\leq m\leq 30)m(2≤m≤30) 个彩灯和一个按钮。每按下按钮时,最右边的彩灯会发生一次变换。变换为: 1. 如果当前状态为红色,它将变成绿色; 2.如果当前状态为绿色,它将变成蓝色; 3.如果当前状态为蓝色,它将变成红色,并且它左边的彩灯(如果存在)也会发生一次变换。 初始状态下所有的灯都是红色的。
询问按下按钮 n (1\leq n< {2}^{63})n(1≤n<263) 次以后各个彩灯的颜色。
输入包含多组数据. 第一行有一个整数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<263) 。
对于每组数据,输出一个长度为mm的字符串,表示从左到右mm个彩灯的颜色。
R代表红色;G代表绿色;B代表蓝色。
2
3 1
2 3
RRG
GR
红、绿、蓝分别表示0、1、2,每次操作就相当于+1,原问题就转化为求n的三进制
表示的最低的m位,即求 n mod 3^m3的三进制表示。
复杂度 O(m)O(m)
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
int main()
{
int m ,t;
LL n;
scanf("%d", &t);
int color[];
while (t--)
{
memset(color, , sizeof(color));
scanf("%d%I64d", &m, &n);
int cnt = m;
while (n > && m > )
{
color[m--] = n % ;
n = n / ;
}
for (int i = ; i <= cnt; i++)
{
if (color[i] == )
printf("R");
else if(color[i] == )
printf("G");
else if (color[i] == )
printf("B");
}
printf("\n");
}
return ;
}
HDU5670Machine(抽象进制)的更多相关文章
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
- python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别
1.python2将base64数据写成图片,并将数据转为16进制字符串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABE ...
- bytes数据类型和字符串的编码解码,三元运算,进制互换
三元运算 如果这个条件成立就存这个值,如果那个条件成立就存那个值. 进制 bytes类型,字节数据类型也就是二进制类型,这个是python3专有数据类型,在python2里跟字符串是一个类型,也就是p ...
- 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩
抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...
- SQL Server 进制转换函数
一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- TCP进制转换
/// <summary> /// 将十六进制字符串转化为字节数组 /// </summary> /// <param name="src">& ...
- 将十进制数转为一个n位数的密码(每位都是个m进制数)
例如一个6位数的10进制密码,共有106个密码,如果把每个6位数的密码编成号就是[0,106-1].这是十进制的情况,即6个位,每个位有10种选择.如果要遍历所有密码,需要6重for循环,每个循环10 ...
- - >code vs 1475 m进制转十进制
1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个 ...
随机推荐
- 吉特仓库管理系统-.SQL Server 2012 升级企业版
随着业务数据的不断增大,单表的数量已经上亿,查询的数据越来越慢,所以考虑到将数据库表分区,同时也将数据库升级到SQL Server 2012. 当时没有考虑更多,在服务器上安装了 SQL Server ...
- memcached安装配置
简述: memcached,开源的分布式缓存数据系统.高性能的NOSQL . Linux 一.环境配置与安装 01.编译准备环境 yum install -y gcc make cmake autoc ...
- android 随记 ContentValues
ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而 ...
- 美发屋App-业余爱好
出于个人爱好, 自行设计了一款APP,由于时间有限,APP目前只做了3天,现大四,急求一份实习工作,月薪3K左右即可! 软件UI设计到编码,全部又我一人完成,所以工作量比较大 底部采用·Fragmen ...
- [转]关于jquery中html()、text()、val()的区别
原文地址:http://www.cnblogs.com/xiaolifeidao/p/3715830.html .html()用为读取和修改元素的HTML标签 对应js中的innerHTML . ...
- 远程登录服务器执行cmd的Python脚本
import paramiko,os,sys ip = raw_input("input ip address :>>>") password = raw_inp ...
- 【CodeForces 261B】Maxim and Restaurant(DP,期望)
题目链接 第一种解法是$O(n^3*p)$的:f[i][j][k]表示前i个人进j个人长度为k有几种方案(排列固定为123..n时).$f[i][j][k]=f[i-1][j][k]+f[i-1][j ...
- GC基本算法及C++GC机制
前言 垃圾收集器是一种动态存储分配器,它自动释放程序不再需要的已分配的块,这些块也称为垃圾.在程序员看来,垃圾就是不再被引用的对象.自动回收垃圾的过程则称为垃圾收集(garbage collectio ...
- SQLAlchemy 操作数据库
首先安装 SQLAlchemy install PyMySQL install sqlalchemy 代码: #!/usr/bin/env python # encoding: utf-8 " ...
- DFS经典题,reachable or not in a 2D maze
[[0, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1], [0, 1, 0, 0, 1, 0], ...