日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU5670Machine(抽象进制)

發布時間:2024/4/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU5670Machine(抽象进制) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有一個機器,它有 m (2\leq m\leq 30)m(2m30) 個彩燈和一個按鈕。每按下按鈕時,最右邊的彩燈會發生一次變換。變換為: 1. 如果當前狀態為紅色,它將變成綠色; 2.如果當前狀態為綠色,它將變成藍色; 3.如果當前狀態為藍色,它將變成紅色,并且它左邊的彩燈(如果存在)也會發生一次變換。 初始狀態下所有的燈都是紅色的。 詢問按下按鈕 n (1\leq n< {2}^{63})n(1n<2?63??) 次以后各個彩燈的顏色。 輸入描述 輸入包含多組數據. 第一行有一個整數T (1\leq T\leq 15)T(1T15), 表示測試數據的組數. 對于每組數據: 唯一的一行包含2個整數 m (2\leq m\leq 30)m(2m30) 和 n (1\leq n< {2}^{63})n(1n<2?63??) 。 輸出描述 對于每組數據,輸出一個長度為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)

1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 typedef long long LL; 6 int main() 7 { 8 int m ,t; 9 LL n; 10 scanf("%d", &t); 11 int color[50]; 12 while (t--) 13 { 14 memset(color, 0, sizeof(color)); 15 scanf("%d%I64d", &m, &n); 16 int cnt = m; 17 while (n > 0 && m > 0) 18 { 19 color[m--] = n % 3; 20 n = n / 3; 21 } 22 for (int i = 1; i <= cnt; i++) 23 { 24 if (color[i] == 0) 25 printf("R"); 26 else if(color[i] == 1) 27 printf("G"); 28 else if (color[i] == 2) 29 printf("B"); 30 } 31 printf("\n"); 32 } 33 return 0; 34 } View Code

?

?

轉載于:https://www.cnblogs.com/zhaopAC/p/5428058.html

總結

以上是生活随笔為你收集整理的HDU5670Machine(抽象进制)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。