洛谷 P1079 Vigen re 密碼

2021-07-23 21:58:09 字數 853 閱讀 3591

題目描述

16 世紀法國外交家 blaise de vigenère 設計了一種多表密碼加密演算法――vigenère 密碼。vigenère 密碼的加密解密演算法簡單易用,且破譯難度比較高,曾在美國南北戰爭中為南軍所廣泛使用。

在密碼學中,我們稱需要加密的資訊為明文,用 m 表示;稱加密後的資訊為密文,用

c 表示;而金鑰是一種引數,是將明文轉換為密文或將密文轉換為明文的演算法中輸入的資料,

記為 k。 在 vigenère 密碼中,金鑰 k 是乙個字母串,k=k1k2…kn。當明文 m=m1m2…mn時,

得到的密文 c=c1c2…cn,其中 ci=mi®ki,運算®的規則如下表所示:

vigenère 加密在操作時需要注意:

®運算忽略參與運算的字母的大小寫,並保持字母在明文 m 中的大小寫形式;

當明文 m 的長度大於金鑰 k 的長度時,將金鑰 k 重複使用。

例如,明文 m=helloworld,金鑰 k=abc 時,密文 c=hfnlpyosnd。

【題目分析】

模擬+字串。

【**】

#include 

#include

#include

#include

using

namespace

std;

char s1[101],s2[1001];

int l1,l2;

char r(char a,char b)

else

return (char) y;

}int main()

洛谷 P1079 Vigen re 密碼

題目描述 16 世紀法國外交家 blaise de vigen re 設計了一種多表密碼加密演算法 vigen re 密 碼。vigen re 密碼的加密解密演算法簡單易用,且破譯難度比較高,曾在美國南北戰爭中為 南軍所廣泛使用。在密碼學中,我們稱需要加密的資訊為明文,用 m 表示 稱加密後的資訊為...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...