青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 97, 文章 - 22, 評論 - 81, 引用 - 0
數據加載中……

SGU 150 - 159 解題報告

150 Mr. Beetle II                                            枚舉
151 Construct a triangle                                解析幾何
152 Making round                                          貪心
153 Playing With Matches                             博弈 + 規律
154 Factorial                                                  初等數論
155 Cartesian Tree                                        RMQ
156 Strange Graph                                         歐拉回路
157 Patience                                                  模擬打表
158 Commuter  Train                                     二分枚舉
159 Self-Replicating Numbers                       深度優先搜索


150 Mr. Beetle II

      枚舉

      題意:給定兩個二維坐標上的點(x1, y1)(x2, y2),坐標范圍為[-106, 106]。求從一個點(x1, y1)(x2, y2)的直線路徑上經過的第N個方格的左下角坐標,無解輸出no solution


圖1

      題解:首先,如果兩個點的x坐標相同或者y坐標相同,則直接無解;否則將(x1, y1)(x2, y2)一起做相應的平移,使得(x1, y1)(0, 0)重合,方便計算。

如果x1 < x2,枚舉x坐標屬于(x1, x2],對于每個單位為1的區間[x, x+1]容易計算出y方向上有多少個方格,統計出第n個方格;如果x1 > x2,枚舉x坐標屬于(x2, x1],用同樣的方法進行計算。


151 Construct a triangle

      解析幾何

      題意:給定三角形的兩條邊AB = c AC = b 一條中線 AM = m 的長度,求一個滿足條件的三角形的坐標。

      題解:由于三角形的坐標可以隨意取,所以為了簡化問題,可以將A點定在坐標原點,B點定在x軸正方向,C則在第一象限或者第二象限;

       假設A在原點(0, 0)

       Bx+軸上,則有B點坐標(c, 0)

       假設C點坐標為(x, y), 中線坐標為 (B + C) / 2,即 ( (x+c)/2, y/2 )

       已知AM距離m AC距離b,則有:

            x2 + y2 = b2                               (1)

            ((x+c)/2)2 + (y/2)2 = m2             (2)

      合并(1) (2),則有

            -2cx - c2 = b2 - 4 * m2               (3)

            x = (4*m2 -b2 - c2)/2/c;              (4)

            y2 = b2 - x2;                              (5)

      

      根據(5),可以推出 y2 = b2 - x2 = b2 - ((4*m2 -b2 - c2)/2/c ) 2 =>[ (b+c) 2 - (2m)2 ] * [ - (b-c)2 + (2m)2 ] > 0

            b+c > 2m 并且 2m > fabs(b-c)y才有解所以當 2*m > (b+c) 或者2*m < fabs(b-c) 為無解的情況。

       而我們假設C在第一象限或者第二象限,所以y>0,于是(x, y)可通過(4) (5)求得。


2


152 Making round

      貪心

 

      題意:給定N(N <= 10000)個數,求每個數在所有數中所占百分比,要求輸出的數之和為100,每個數可以進行上下取整。如:給定三個數3 3 3,那么輸出為 34 33 3334為向上取整的結果,33為向下取整的結果。

      題解:

            1)首先求得所有數之和S,將每個數a[i]除上S得到商B[i]和余數M[i]

            2)如果余數為0表示為整除,不能進行上下取整。如果余數不為0,說明它有 +1 或者 +0 的機會。 (因為題目說可以上取整,也可以下取整)

            3) 記錄下所有余數不為零的個數T

            4)將所有數的商之和Sum{B[i]} 余數不為零的數的個數T 相加,如果小于100,則表明必定無解。否則掃描數組,將 X = 100-Sum{B[i]}-T 的值分派給每個不能整除的數即可(每個數只可分派1)。

 

153 Playing with matches

      博弈

      題意:給定N根火柴(N <= 109),每次可以從這些火柴中取1,P1,P2,...,Pm (2<=Pi<=9, 0<=m<=8)根,兩人分別輪次進行拾取,并且總是按照最優策略去取,最后取完火柴的人為輸的人,問當前狀態是否是一個必勝狀態。

         題解:經典博弈,對于給定狀態X

                   1) 如果按照所有方式取,最后都只能讓對手到達必勝狀態,那么X為必敗狀態;

                   2) 如果對于某種取法,可以讓對手達到必敗狀態,那么X為必勝狀態;

               3) 顯然,0為必勝態,1為必敗態,2為必勝態。

      根據以上的性質,可以通過遞推,將火柴根數確定的情況下,將所有狀態算出來,但是由于N <= 109,數據量太大,但是我們注意到每個Pi很小,最大值也只有9,某些大狀態是通過小狀態算出來的,所以必然存在循環。

       于是問題就轉化成了求一堆序列的循環節,可以先預處理將5000(足夠大就行)以內的狀態用記憶化搜索算出來,對于每個狀態值,用0表示必勝,1表示必敗。枚舉循環節的長度len,然后檢測是否一個合法的循環節。最后N的狀態值就是N % len的狀態值。

 

154 Factorial

      二分統計 + 初等數論

       
      題意:給定一個數N,求一個最小的數K,使得K!末尾正好有N0

      題解:因為K!中的質因子中5的個數明顯比2的個數少,所以求末尾有多少個0,其實就是求K!中有多少個質因子5。那么這些質因子一定出現在 51015253035... K中,對于 K!,將所有的5的倍數提出來,剩下部分為T,則有:

      K! = 1*2*3*4*5*...(K-1)*K = 5 * 10 * 15 * ... * (1*2*3*4*6*7*8*9*11*12*13*14*16*...K) = 5*10*15*...* T = 5* (1*2*3...) * T = 5 * T * K'! 我們發現5*T5的質因子個數為T個,K'! 中的5的個數則可以轉化成子問題求解,這樣就變成了一個遞歸求解K中質因子為5的個數S的問題,遞歸方程為 S[ K ] = K/5 + S[K/5] ( K > 0 ) K = 0時返回0,即遞歸出口。

       那么就可以二分枚舉一個K,然后通過上面的遞歸求解K5這個質因子的個數,然后和N比較,如果找不到一個K,使得它的5質因子的個數為N則無解,否則找一個最小的。

 

155 Cartesian Tree

      RMQ(or ZigZag)

      題意:給定N(N <= 50000)個整數對(key, a),要求將他們組織成一棵樹二叉樹,并且對于樹的任意一個結點,滿足如下兩個性質:

      1) 當前結點的a值大于它父節點的a(小頂堆的性質)

      2) 當前結點的key值大于左子樹的key值,并且小于右子樹的key(排序二叉樹的性質)

      題目保證所有的key值和a值都不同。

      題解:首先將所有整數對按key值遞增排序,這樣我們只需要對數組進行切分,如果第t個結點作為根結點,那么[1, t-1]必定是它的左子樹集合,[t+1, N]必定是它的右子樹集合,這樣就能夠保證第二個條件,而第一個條件需要滿足父節點的a值小于左右子樹的a值,所以第t個結點必定是所有數中a值最小的,于是可以規約出一個遞歸算法,對于當前區間[l, r],找到區間內a值最小的作為根結點,然后將它左邊的區間和右邊的區間進行相同的遞歸運算。初始區間為[1, N],當[l, r]滿足 l > r即為遞歸出口。求區間最小值可以采用RMQ總的時間復雜度為排序的時間復雜度O(N log N)

      RMQ 資料參閱 http://m.shnenglu.com/menjitianya/archive/2014/06/26/207420.html


156 Strange Graph

      歐拉回路
      題意:給定一個N(N <= 10000)個點的連通圖,這個圖滿足以下性質:
            1) 每個頂點v的度數都大于等于2
            2) 如果頂點v的度數等于2,那么它連接的兩個頂點不相鄰;
            3) 如果頂點v的度數大于2,那么和v相鄰的點u滿足以下條件之一;
                  a) u的度數等于2
                  b) 任何和v相鄰的點(除了u)中都兩兩相鄰;

      求這個圖的一個哈密爾頓回路(經過每個頂點一次的回路)

題解:首先將所有度數為2的點進行標記,那么從這個圖的定義中可知,未標記的點必定是在一個完全子圖中的,將圖中所有完全子圖中的點縮成一個點,對縮完點的圖統計度數,如果所有的點的度數都為偶數,那么必定存在一個歐拉回路,求出歐拉回路后再拆點轉換成哈密爾頓回路;否則,歐拉回路不存在,哈密爾頓回路也就不存在。

 

157 Patience

      打表題
      題意:給定N(1 <= N <= 13),表示(1 2 3 ... N )N+1個位置,其中N個位置隨機排放著1-N中的某一張牌,每次可以在“空”左邊的位置找到一張牌K,然后將K+1這張牌放在“空”的位置上,問哪些初始狀態可以到達一個狀態使得前N個格子的牌有序排列(第N+1個位置留空)。
      題解:從(1 2 3 ... N )這個狀態起,反向模擬,能夠到達的狀態都是可達狀態,統計所有可達狀態的個數,N的最大值為13,時間上不允許可以客戶端計算出值然后打表!


158 Commuter Train

      二分枚舉


      題意:車站長度為L(L <= 5000),給定NN<= 300)個乘客在車站的位置,以及一輛公交車的MM <= 300)個車門離車頭的位置,乘客一定會選擇離自己最近的車門進入,問這輛車要停在哪里可以使得所有人進入車門需要走的距離總和最大,好變態的想法。

      題解:只要枚舉車需要停靠的位置,然后枚舉每個人到達的那個車門花費的距離總和,取最大值就是答案。

      這里對于某個人需要去哪個車門可以采用二分枚舉,因為車門是有序的,只要二分找到離它最近的左車門,那么下一個就是最近的右車門(需要考慮邊界,最左和最右的情況都只有一個車門),然后取左、右車門的距離小者。仔細想一下,最大值不一定出現在整點上,也有可能出現在0.5的位置上,所以可以將所有坐標都乘2,然后最后答案再除二避免精度誤差。

 

159 Self-Replicating Numbers

      深度優先搜索


      題意:N(N <= 2000)B進制數中平方的最后幾位等于該數本身的數的個數。

      題解:利用dfs從最后面一位digit開始枚舉[0, B),模擬相乘后對應位的余數,如果和該數的枚舉那一位不相符則不進行下一步搜索,當枚舉到第N位完畢,則將解保存,這里需要注意當N1的時候,最高位可以為0,否則最高位為0的情況需要去掉(最高位為0說明它不是N位數(N>1))。



posted on 2014-08-14 09:33 英雄哪里出來 閱讀(1824) 評論(0)  編輯 收藏 引用 所屬分類: Sgu 題解

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精彩视频在线观看不卡| 麻豆av一区二区三区| 亚洲国产欧美日韩精品| 国产精品久久国产愉拍| 欧美国产日本韩| 老司机免费视频一区二区| 亚洲欧美日韩国产成人| 亚洲欧美精品| 亚洲免费影视第一页| 精品电影在线观看| 国产私拍一区| 国产精品亚洲第一区在线暖暖韩国| 欧美激情一区| 欧美小视频在线观看| 欧美视频免费在线观看| 国产欧美精品在线播放| 一区二区三区在线观看国产| 亚洲国产女人aaa毛片在线| 亚洲国产欧美日韩另类综合| 最新中文字幕亚洲| 亚洲一区二区少妇| 欧美亚洲视频一区二区| 欧美sm视频| 正在播放亚洲| 蜜桃av一区二区| 国产欧美韩国高清| 亚洲激情专区| 欧美a级在线| 亚洲一区影音先锋| 欧美大片在线观看一区二区| 国产性天天综合网| 亚洲一区二区三区中文字幕| 免费成人美女女| 香蕉免费一区二区三区在线观看| 欧美精品一区二区久久婷婷| 好吊妞这里只有精品| 亚洲免费视频成人| 亚洲激情成人在线| 久久在线播放| 亚洲精品美女在线观看播放| 欧美在线视频全部完| 一区二区三区视频在线| 欧美成人午夜剧场免费观看| 亚洲在线免费| 欧美日韩国产在线播放网站| 亚洲国产精品电影在线观看| 性久久久久久| 午夜视频久久久| 狠狠色丁香婷婷综合影院| 亚洲自啪免费| 先锋影音国产精品| 好吊色欧美一区二区三区视频| 欧美亚洲在线视频| 久久国产高清| 亚洲精品资源| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩国语| 久久蜜桃精品| 蜜臀91精品一区二区三区| 亚洲午夜精品一区二区| 亚洲欧美日韩国产成人| 亚洲国产导航| 午夜国产精品视频免费体验区| 伊人久久综合97精品| 日韩一级黄色片| 国产免费观看久久黄| 欧美日韩视频第一区| 欧美三级视频在线播放| 99精品国产高清一区二区| 一区二区三区无毛| 老**午夜毛片一区二区三区| 激情久久久久久久久久久久久久久久| 久久九九有精品国产23| 亚洲天堂免费观看| 久久看片网站| 午夜精品影院| 国产精品极品美女粉嫩高清在线| 日韩视频一区二区三区在线播放免费观看 | 国产一区91精品张津瑜| 亚洲一区久久| 亚洲第一精品夜夜躁人人躁| 一区二区三区日韩| 国产专区欧美专区| 欧美色综合网| 欧美国产精品人人做人人爱| 在线视频精品| 久久资源av| 日韩视频一区二区三区| 国产一区二区精品丝袜| 久久国产精品久久久| 欧美激情一区二区三区成人| 夜夜嗨一区二区| 国产精品男gay被猛男狂揉视频| 久久精品综合网| 99成人精品| 亚洲国产日韩在线| 久久精品五月| 亚洲与欧洲av电影| 国内精品久久久久影院薰衣草| 欧美激情精品久久久久久变态| 午夜激情综合网| 亚洲国产视频a| 欧美成人精品一区二区| 亚洲视频在线观看网站| 激情国产一区| 亚洲第一精品电影| 亚洲二区在线视频| 国产亚洲人成网站在线观看 | 亚洲激情偷拍| 欧美高清视频在线观看| 国产精品视频一区二区三区| 久久久精品国产免费观看同学| 亚洲第一黄网| 亚洲黄色一区二区三区| 久久久亚洲欧洲日产国码αv| 性娇小13――14欧美| 午夜亚洲福利| 国产日韩视频| 亚洲国产精品成人综合| 亚洲日本中文字幕区| 亚洲精选一区二区| 亚洲综合视频一区| 亚洲专区在线| 亚洲欧美激情精品一区二区| 亚洲一区二区动漫| 亚洲女人天堂成人av在线| 亚洲一区二区免费视频| 亚洲一区二区精品视频| 日韩一二三在线视频播| 亚洲色图自拍| 久久国产黑丝| 亚洲日本一区二区| 一二三区精品福利视频| 亚洲四色影视在线观看| 亚洲伊人一本大道中文字幕| 麻豆精品一区二区av白丝在线| 国产精品嫩草影院av蜜臀| 黄色成人在线网站| 一区二区三区成人| 免费观看成人www动漫视频| 亚洲精品你懂的| 亚洲欧美中日韩| 欧美香蕉视频| 亚洲美女免费视频| 欧美激情片在线观看| 欧美一级理论性理论a| 国产精品免费网站| 欧美一区二区三区四区视频| 一区二区不卡在线视频 午夜欧美不卡在| 欧美一级大片在线观看| 国产精品白丝av嫩草影院| 亚洲欧美在线一区| 99亚洲精品| 99热这里只有精品8| 国产农村妇女精品一二区| 一级成人国产| 欧美一区二区三区成人| 国产精品日韩| 亚洲电影免费在线观看| 欧美激情一区二区三区在线| 亚洲国产精品一区二区久| 亚洲黄色av一区| 国产一区99| 亚洲一级高清| 亚洲在线播放电影| 欧美巨乳波霸| 亚洲人成亚洲人成在线观看图片| 狠狠久久婷婷| 免费观看成人| 亚洲精品一区二| 亚洲视屏一区| 欧美精品亚洲一区二区在线播放| 亚洲成人资源网| 欧美日韩国产免费观看| 欧美大片免费久久精品三p | 亚洲精选在线| 国产精品视频网| 亚洲午夜激情网页| 亚洲综合色激情五月| 欧美日本乱大交xxxxx| 欧美高清在线播放| 国产亚洲人成a一在线v站| 午夜精品久久久久久99热软件| 夜夜嗨av一区二区三区网站四季av | 一本色道久久99精品综合| 国产在线观看一区| 亚洲承认在线| 亚洲精品久久久蜜桃| 免费h精品视频在线播放| 欧美国产三级| 在线亚洲伦理| 国产精品入口尤物| 久久精品99国产精品| 久久亚洲综合色一区二区三区| 国产视频观看一区| 日韩午夜av电影| 亚洲美女电影在线| 精品1区2区3区4区| 欧美日韩xxxxx| 欧美成人精品三级在线观看|