BestCoder Round #81 (div.2)-Machine(模拟)
来源:互联网 发布:super() python 编辑:程序博客网 时间:2024/05/24 00:40
Machine
Accepts: 580
Submissions: 1890
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
有一个机器,它有 m(2≤m≤30) 个彩灯和一个按钮。每按下按钮时,最右边的彩灯会发生一次变换。变换为:1. 如果当前状态为红色,它将变成绿色;2.如果当前状态为绿色,它将变成蓝色;3.如果当前状态为蓝色,它将变成红色,并且它左边的彩灯(如果存在)也会发生一次变换。初始状态下所有的灯都是红色的。询问按下按钮 n(1≤n<263) 次以后各个彩灯的颜色。
输入描述
输入包含多组数据. 第一行有一个整数T(1≤T≤15), 表示测试数据的组数. 对于每组数据:唯一的一行包含2个整数 m(2≤m≤30) 和 n(1≤n<263) 。
输出描述
对于每组数据,输出一个长度为m的字符串,表示从左到右m个彩灯的颜色。R代表红色;G代表绿色;B代表蓝色。
输入样例
23 12 3
输出样例
RRGGR
Machine
红、绿、蓝分别表示0、1、2,每次操作就相当于+1,原问题就转化为求n的三进制
表示的最低的m位,即求 n mod 3m的三进制表示。
复杂度 O(logn)
AC代码:
#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<vector>using namespace std;typedef long long ll;#define T 100000 + 50#define inf 0x3f3f3f3fint main(){#ifdef zsc freopen("input.txt","r",stdin);#endif int a[35],i,j,k,t; ll n,m; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a));//red-0,green-1,bule-2 ~scanf("%I64d%I64d",&m,&n); ll c,cmod,v,tmp,cur; for(i=m;i>=1;--i){ cur = n/3; cmod = n%3; a[i] = cmod; n = cur; } for(i=1;i<=m;++i){ if(a[i]==0)printf("R"); else if(a[i]==1)printf("G"); else printf("B"); } printf("\n"); } return 0;}
0 0
- BestCoder Round #81 (div.2)-Machine(模拟)
- BestCoder Round #81 (div.2) Machine
- BestCoder Round #81 (div.2):1001 Machine
- BestCoder Round #81 (div.2)-Matrix(模拟)
- BestCoder Round #81 (div.2) 1001 Machine(找规律)
- HDU 5670 Machine——BestCoder Round #81(div.2)
- hdoj BestCoder Round #81 (div.2) AA Machine
- hdoj 【BestCoder Round #81 (div.2)】 5670 Machine
- Victor and Machine----(BestCoder Round #52 (div.2))
- BestCoder Round #62 (div.2)-Clarke and food(模拟)
- BestCoder Round #76 (div.2)-DZY Loves Partition(模拟)
- BestCoder Round #81 (div.2)
- BestCoder Round #81 (div.2)
- BestCoder Round #52 (div.2) 1001 Victor and Machine
- BestCoder Round #52 (div.2) Victor and Machine
- BestCoder Round #52 (div.2)HDU5417 Victor and Machine
- BestCoder Round #50 (div.2) & HDOJ5364 Search Result(模拟)
- BestCoder Round #54 (div.2) HDOJ 5429 Geometric Progression(模拟)
- Leetcode 8. String to Integer (atoi)
- jdk中设计模式的实现
- 由小到大输出这些数字排列
- canvas初体验
- Two Sum(两个数字和)
- BestCoder Round #81 (div.2)-Machine(模拟)
- Android Studio运行或Rebuild的时候报Error:Execution failed for task ':app:compileDebugNdk'.的解决办法
- Android - bitmap简单总结
- Jquery Deferred objects
- 素数求解
- javascript 的 继承(三) 之 组合继承
- 多进程DP
- oralce 释放段空间
- 源代码设计实现,源代码控制