• <input id="2bncg"><div id="2bncg"></div></input>
    <video id="2bncg"><dfn id="2bncg"></dfn></video>
  • <video id="2bncg"></video>
        1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

          <b id="2bncg"><address id="2bncg"></address></b>

          <source id="2bncg"><address id="2bncg"></address></source>
          <video id="2bncg"></video>
          筆趣閣 > 都市小說 > 重生學神有系統 > 第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值。

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

          對拍。

          最新小說: 頂級世家!我音系成神?滅異族! 咬定寶山不放松 在線追妻:陸先生寵婚365式 斗羅:學霸養成系統什么鬼 人在柯南,我真不是悍匪 我,內測服最終BOSS! 上山十幾年,下山即無敵 精靈世界的工匠大師 低等雌性爆紅全星際 萬金娘子
        2. <input id="2bncg"><div id="2bncg"></div></input>
          <video id="2bncg"><dfn id="2bncg"></dfn></video>
        3. <video id="2bncg"></video>
              1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

                <b id="2bncg"><address id="2bncg"></address></b>

                <source id="2bncg"><address id="2bncg"></address></source>
                <video id="2bncg"></video>
                最近免费观看高清韩国日本大全