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

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

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

      Hoodlum1980's Technological Blog

      Languages: C / C++, ASM, C#, Python, Java.

      博客園 首頁(yè) 新隨筆 聯(lián)系 訂閱 管理

        太久沒(méi)有做 zoj,對(duì) oj 來(lái)說(shuō),由于它高度的”黑盒性“(輸入數(shù)據(jù)和答案完全保密),保護(hù)自信心是非常重要的。所以我先選擇一道非常簡(jiǎn)單的題目刷起。本題目是一個(gè)相當(dāng)簡(jiǎn)單的題目,難度系數(shù)和求 A+B 相當(dāng)。

        本題,已知一個(gè)指針,初始狀態(tài)指向 N(北),現(xiàn)在對(duì)指針做一系列順時(shí)針(C)或者逆時(shí)針(A)旋轉(zhuǎn) 90 度的操作,問(wèn)指針然后指向哪個(gè)方向。

        由于四個(gè)方向形成一個(gè)循環(huán),所以很自然的提示出,把四個(gè)方向所在的”圓環(huán)“展開成一個(gè)數(shù)組,所有的旋轉(zhuǎn)操作實(shí)際上是移動(dòng)數(shù)組內(nèi)的索引,對(duì)索引進(jìn)行遞增或者遞減的操作。然后對(duì)索引進(jìn)行對(duì)數(shù)組長(zhǎng)度的 MOD (取余)操作,限制在合理范圍內(nèi)即可。

        設(shè)索引值為 x,初始值為 0,定義向逆時(shí)針?lè)较蛐D(zhuǎn)定義為正方向,則:

        逆時(shí)針(A)旋轉(zhuǎn) 90 度:x = ( x + 1 )  % 4;

        順時(shí)針(C)選擇 90 度:x = ( x - 1 + 4 ) % 4 = ( x + 3 ) % 4;

        因此,我們需要把旋轉(zhuǎn)方向(A 或 C),映射到對(duì) x 的遞增值(1 或 3 )上。因此我們發(fā)現(xiàn)這里有一個(gè)巧合:A 和 C 之間的差值(C - A = 2),恰好也是這個(gè)遞增值之間的差值( 3 - 1 = 2)。所以這個(gè)映射關(guān)系,不需要使用條件判斷,可以直接寫出此映射關(guān)系:

        x = ( x + *p - 'A' + 1 ) % 4; ( *p = 'A' 或 'C' )

        如果我們進(jìn)一步查閱一下 ASCII 碼表,上面的代碼也等效于:

        x = ( x + *p - '@' ) % 4; 或者  x = ( x + *p - 0x40 ) % 4;

        最終代碼如下:

      #include <stdio.h>
      int main(int argc, char* argv[])
      {
          int i, x, count = 0;
          char *p;
          char directions[8] = "NWSE";
          char line[128];
          scanf("%d\n", &count);
          for(i = 0; i < count; i++)
          {
              gets(line);
              p = line;
              x = 0;
              while(*p)
              {
                  x = (x + (*p - 'A' + 1)) & 3;
                  ++p;
              }
              printf("%c\n", directions[x]);
          }
          return 0;
      }

       

        【補(bǔ)充】由于旋轉(zhuǎn)次數(shù)很少(不超過(guò) 100 次),因此如果我們一直對(duì) x 進(jìn)行累加,也不會(huì)溢出 int 的最大值。所以在 while 循環(huán)中的 MOD 操作可以去除,僅在最后輸出結(jié)果時(shí),對(duì) x 進(jìn)行一次 MOD 操作即可。

      posted on 2017-08-23 18:49  hoodlum1980  閱讀(317)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 她也色tayese在线视频| 伊人色综合久久天天小片| 国产真实野战在线视频| 无码丰满人妻熟妇区| 亚洲最大色综合成人av| 日韩人妻系列无码专区| 国内不卡不区二区三区| 国产精品成熟老女人| 最近中文字幕日韩有码| 日韩人妻无码一区二区三区综合部| 久久精品丝袜高跟鞋| 国产精品九九久久精品女同| 日韩国产成人精品视频| 久久精品娱乐亚洲领先| 一本久久a久久精品综合| 超碰人人超碰人人| 国产AV影片麻豆精品传媒| 国产精品视频第一第二区| 欧美高清狂热视频60一70| 亚洲 欧美 影音先锋| 亚洲中文字幕无码日韩精品| 四虎国产精品永久在线| 337p西西人体大胆瓣开下部| av午夜福利亚洲精品福利| 久章草在线毛片视频播放| 久久se精品一区精品二区国产| 在线观看无码av五月花| 蜜臀视频一区二区在线播放| 国产精品久久久久久久9999| 丁香婷婷色综合激情五月| 午夜免费啪视频| 黄频在线播放观看免费| 四虎在线播放亚洲成人| 国产久爱免费精品视频| V一区无码内射国产| 青青草原国产精品啪啪视频| 日韩精品成人区中文字幕| 免费观看在线A级毛片| 欧美精品一区二区三区中文字幕| 日韩无矿砖一线二线卡乱| 色综合AV综合无码综合网站|