1. <source id="tnnqp"></source>
  • <b id="tnnqp"><source id="tnnqp"><menu id="tnnqp"></menu></source></b>
      <xmp id="tnnqp"></xmp>

        1. <xmp id="tnnqp"><source id="tnnqp"></source></xmp><source id="tnnqp"><mark id="tnnqp"><noframes id="tnnqp"></noframes></mark></source>
          <xmp id="tnnqp"></xmp>

            <b id="tnnqp"><small id="tnnqp"></small></b>
            筆趣閣 > 都市小說 > 重生學神有系統 > 第246章 Vigenère密碼和國王游戲

            第246章 Vigenère密碼和國王游戲(2 / 2)

            ⊕運算不區分大小寫,加密結果套用明文的大小寫格式。

            當M的長度大于K的長度時,重復使用K。

            問題:給出密鑰和密文,求原本的明文。

            如果讓江寒給這道題的難度評級,大約只肯給出1星。

            這么簡單的題目,約等于白給。

            解題思路十分明確,找出加密規則⊕的數學描述,然后使用⊕的逆運算,代入密鑰K和密文C,求出明文M。

            如果實在不想麻煩,也可以將規則表建立成一個字符數組,然后反向查表。

            可以說,只要認真訓練過的選手,這道題沒理由會丟分。

            江寒迅速在草稿紙上,將流程圖畫了出來,然后編寫C++代碼。

            5分鐘搞定代碼,然后在test.in中編制了10組測試數據,一一代入進行模擬計算。

            輸出的結果與紙筆計算十分吻合。

            此題結束。

            由于linux系統區分大小寫,所以江寒在解題的過程中,除了題目中有規定的輸出文本等,程序中使用的所有變量等等,一律使用小寫字母。

            接下來是第二題:國王游戲

            N個大臣排成一隊,國王站在隊伍最前方,每個人左右手上,分別寫有一個數字。

            國王按照規則,賜予每個大臣一定數量的金幣。

            每個大臣所能得到的金幣數,等于排在該大臣之前所有人左手數字之乘積,除以其右手的數字,結果向下取整。

            問題是,如何調整大臣的順序,才能讓獲得的金幣最多的那個人,得到的金幣盡可能的少。

            注意,國王始終站在隊伍最前方。

            然后在輸入數據說明中,有如下提示。

            對于20%的數據,有1≤n≤10,0&lt;a、b&lt;8;

            對于40%的數據,有1≤n≤20,0&lt;a、b&lt;8;

            對于60%的數據,有1≤n≤100;且答案不超過10^9;

            對于100%的數據,有1≤n≤1,000,0&lt;a、b&lt;10000。

            這道題的難度比第一題稍有提高,但也不算特別費勁。

            此題的坑點在于,輸入的數據有可能很大,使用通常的編程方式,只能通過前40%的數據校驗,想得高分,就必須使用高精度編程。

            解題思路就是窮舉法。

            針對給出的大臣數N,以及給出的N+1組左右手數字a、b,計算每種可能的站位情況所對應的金幣最大值m,再求出集合M={m1,m2,m3,……mk}中的最小值。

            由于N個大臣共有N!種站位,所以一旦N足夠大,計算量將是非常恐怖的。

            這道題一共10個檢查點,每個檢查點10分。

            比賽對于程序運行時間的限制,是每個檢查點不超過1秒。

            對于運行空間的限制,是每個程序使用的內存,不得超過128兆。

            無論在哪個檢查點超時或者輸出錯誤,都會扣掉該點的分值。

            計算機打分的時候,一般會輸入強弱不同的10組測試數據。

            遇上小點的數字,比如本題中前20%的數據,只要程序沒有邏輯錯誤,基本都能通過測試,拿到分數。

            但當N稍微大一點的時候,使用暴力搜索算法,很可能會超過1s的時限。

            所以,一定要找出規律,對輸入的N組a、b進行預處理。

            江寒在紙面上推演了一下,很快得到了一個猜想:當大臣們按a×b的積升序排序時,得到的序列就是最優的方案。

            那么原本的暴力搜索程序,就可以改造一下了。

            第一步,排序,求出最優方案時的隊列,第二步,計算該情況下的M值。

            毫無疑問,這個算法的效率遠比暴力搜索更高,其運行時間取決于使用的排序算法的時間復雜度。

            江寒先編制了一個最樸素的暴力搜索算法,測試了一下,驗證程序沒有邏輯錯誤后,另存了一份。

            然后又按照改進后的思路,修改了一下代碼,用快速排序整理隊列,然后計算M值。

            接下來就是比較好玩的東西了。

            對拍。

            最新小說: 都市之破案狂少 星穹鐵道:巡獵副官的開拓之旅 蜀山:滅絕 透視賭石王 離婚后,娶了前妻的天后小姨 LOL:什么叫折磨流選手啊!蘇墨阿布 從私吞千萬億舔狗金開始當神豪 婚紗追星網暴我?京城世家齊出手 當網絡皇帝,享缺德人生 鶴飲春風
            1. <source id="tnnqp"></source>
          1. <b id="tnnqp"><source id="tnnqp"><menu id="tnnqp"></menu></source></b>
              <xmp id="tnnqp"></xmp>

                1. <xmp id="tnnqp"><source id="tnnqp"></source></xmp><source id="tnnqp"><mark id="tnnqp"><noframes id="tnnqp"></noframes></mark></source>
                  <xmp id="tnnqp"></xmp>

                    <b id="tnnqp"><small id="tnnqp"></small></b>
                    天天爽夜夜爽夜夜爽精品视频