<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      對稱美學(xué),對稱字符串

      時間限制:1s 空間限制:256MB 限定語言:不限

      題目描述:

      對稱就是最大的美學(xué),現(xiàn)有一道關(guān)于對稱字符串的美學(xué)。已知:

      第 1 個字符串:R

      第 2 個字符串:BR

      第 3 個字符串:RBBR

      第 4 個字符串:BRRBRBBR

      第 5 個字符串:RBBRBRRBBRRBRBBR

      相信你已經(jīng)發(fā)現(xiàn)規(guī)律了,沒錯!就是第 i 個字符串 = 第 i - 1 號字符串的取反 + 第 i - 1 號字符串;取反(R->B, B->R);

      現(xiàn)在告訴你 n 和 k,讓你求得第 n 個字符串的第 k 個字符是多少。(k的編號從 0 開始)

      輸入描述:

      第一行輸入一個T,表示有T組用例;

      接下里輸入T行,每行輸入兩個數(shù)字,表示n, k

      1 <= T <= 100;

      1 <= n <= 64;

       

       

      0 <= k < 2^(n-1);

      輸出描述:

      輸出T行表示答案;

      輸出 "blue" 表示字符是B;

      輸出 "red" 表示字符是R;

      補充說明:

      輸出字符串區(qū)分大小寫,請注意輸出小寫字符串,不帶雙引號

      示例1

      輸入:

      5

      1 0

      2 1

      3 2

      4 6

      5 8

      輸出:

      red

      red

      blue

      blue

      blue

      說明:

      第 1 個字符串:R -> 第0個字符為R

      第 2 個字符串:BR -> 第1個字符為R

      第 3 個字符串:RBBR -> 第2個字符為B

      第 4 個字符串:BRRBRBBR -> 第6個字符為B

      第 5 個字符串:RBBRBRRBBRRBRBBR -> 第8個字符為B

      示例2

      輸入:

      1

      64 73709551616

      輸出:

      red

       
      function find(n, k) {
          if (n == 0) {
              return 'R';
          }
          let len = Math.pow(2, n);
          // 如果 k 在后半段,則與前一個字符串相同
          if (k >= len / 2) {
              let pos = k - len / 2;
              return find(n - 1, pos);
          } else {
              // 如果 k 在前半段,則與前一個字符串相反
              return find(n - 1, k) == 'R' ? 'B' : 'R';
          }
      }
      
      function main() {
          /*
          5 8
          n=5,k=8
          第 5 個字符串:RBBRBRRBBRRBRBBR  總字符串個數(shù) 2^(5-1) = 16,半數(shù)half=16/2=8;
          k=8 == half(8),說明第k=8個字符在后半部分,(從“第 1 個字符串:R  -> 第0個字符為R ”,這句話可以看出,數(shù)字符串的時候是從0開始數(shù),所以8在后半段了)
          這串字符是繼承的第4個字符串,沒有進行翻轉(zhuǎn),且此字符在第4個字符串的位置為 8 - half(8)=0;
          第 4 個字符串:BRRBRBBR   總字符串個數(shù) 2^(4-1) = 8,半數(shù)half=8/2=4;
          k=0<half(4),說明第k=0個字符在前半部分,這串字符是經(jīng)過第3個翻轉(zhuǎn)的,則位置不變。
          第 3 個字符串:RBBR 總字符串個數(shù)  2^(3-1)=4,半數(shù)half=4/2=2;
          k=0<half(2),說明第k=0個字符在前半部分,這串字符是經(jīng)過第2個翻轉(zhuǎn)的,則位置不變;
          第 2 個字符串:BR  總字符串個數(shù)  2^(2-1)=2,半數(shù)half=2/2=1;
          k=0<half(1),說明第k=0個字符在前半部分,這串字符是經(jīng)過第1個翻轉(zhuǎn)的,則位置不變;
          第 1 個字符串:R  總字符串個數(shù)  2^(1-1)=1,到了第一個R。
          求出總共經(jīng)過3次翻轉(zhuǎn),R->B->R->B,得到結(jié)果為blue
      第 1 個字符串:R  -> 第0個字符為R                   2^(1-1)=1,到了第一個R。         k = 0    1,k = 0 R
      第 2 個字符串:BR  -> 第1個字符為R                  2^(2-1)=2,半數(shù)half=2/2=1;     k = 1    2,k = 0 0在前半段,求 1,0 的反, B
      第 3 個字符串:RBBR -> 第2個字符為B                 2^(3-1)=4,半數(shù)half=4/2=2;     k = 2    3,k = 0 0在前半段,求 2,0 的反, R
      第 4 個字符串:BRRBRBBR  -> 第6個字符為B            2^(4-1)=8,半數(shù)half=8/2=4;     k = 6    4,k = 0 0在前半段,求 3,0 的反, B
      第 5 個字符串:RBBRBRRBBRRBRBBR -> 第8個字符為B     2^(5-1)=16,半數(shù)half=16/2=8;   k = 8  8在后半段,就求 4, 8-8 =》 4,0     B
                              如果 k 在后半段,則與前一個字符串相同, 如果 k 在前半段,則與前一個字符串相反
          */
          // n, k, 求第 n 個字符串的 第 k 個字符為R 
          let res = find(n - 1, k) == 'R' ? "red" : "blue";
          console.log(res);
      }

       

      參考:https://www.nowcoder.com/discuss/443826793280278528

       

      posted @ 2023-02-19 23:10  fengnovo  閱讀(311)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻一区二区三区三区| 亚洲国产精品久久久天堂麻豆宅男| 久久人人97超碰精品| 人人妻人人澡人人爽人人精品av| 亚洲色无码播放亚洲成av| 国产精品成熟老女人| 天堂国产一区二区三区| 少妇激情a∨一区二区三区| 贺兰县| 色噜噜在线视频免费观看| 成人乱码一区二区三区四区| 不卡国产一区二区三区| 欧美成人精品三级网站视频| 国产高清午夜人成在线观看,| 亚洲中文字幕精品久久| 国产播放91色在线观看| 亚洲天天堂天堂激情性色| 日韩在线观看精品亚洲| 亚洲成在人线AV品善网好看| 日本亚洲色大成网站www久久| 欧美乱妇狂野欧美在线视频| 国产成人a∨激情视频厨房| 经典国产乱子伦精品视频| 麻豆麻豆麻豆麻豆麻豆麻豆| 99久久久国产精品免费无卡顿| 宾馆人妻4P互换视频| 国产精品亚洲国际在线看| 日本三级理论久久人妻电影| 天堂网亚洲综合在线| 陇川县| 欧洲免费一区二区三区视频| 一区二区丝袜美腿视频| 久久影院午夜伦手机不四虎卡| 无码日韩精品一区二区三区免费| 玖玖在线精品免费视频| 中文字字幕在线中文乱码| 国产成人精品午夜福利在线观看| 亚洲精品香蕉一区二区| 久久精品一本到99热免费| 天天狠天天透天天伊人| 亚洲精品久久久蜜桃|