密電破譯 dp

2021-10-22 04:32:09 字數 1144 閱讀 9788

題目背景

墨家家主召集**的原因是因為截獲了密電並破獲了重大情報,「公主薨,國王失蹤,墨家即將面臨滅頂之災」。

題目描述

密電是由大小寫字母組成字串,密電之所以能破譯是因為墨家掌握了破解方法,金鑰是乙個整數t,代表按字母表迴圈順位t個字母。

比如:密電:abccz

金鑰:1

破譯結果:bcdda

但是,敵人其實加密方法早就已經公升級了,凡是母音字母均不替換。

比如:密電:abccz

金鑰:1

破譯結果:acdda

現在定義資訊相似度為兩個字串的最大公共子串的長度。 最大公共子串就是,兩個字串的所有子串中能夠相互匹配上的最大長度的字串。 比如:「abcdmmm」 和 「ppabcdapabb」, 最大公共子串是"abcd",則相似度為4。

給定密文、金鑰求墨家破譯資訊的相似度為多少。

輸入格式

第一行,乙個字串s(由大小寫字母構成,s.length≤1000)代表密文;

第二行,乙個整數t(0≤t≤1000)。

輸出格式

乙個整數,代表相似度。

輸入輸出樣例

輸入 #1複製

accepted3輸出

2輸入mxrartfwkb1輸出

6解題思路:

難在審題要清楚,搞懂題目在講什麼哦!!!

**如下:

#include

#include

using

namespace std;

string a, b;

const

int n =

1010

;int dp[n]

[n];

int n;

intmain()

}for

(int i =

0; i < len; i++

)int maxs =-1

;//求最長公共子串

for(

int i =

1; i <= len; i++

)for

(int j =

1; j <= len; j++

) cout << maxs << endl;

return0;

}

簡單密碼破譯

problem description 密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈.接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。假設淵子原來乙個bbs上的密碼為zvbo941987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzi1987,這個密...

python 破譯密碼

題目內容 a國情報局抓獲敵國間諜一名,從間諜身上搜出了若干密電,在嚴刑逼供之下,間諜說出了密電加密方法 將明文電報 僅由大寫字母構成 中的所有字母均替換為字母表中向後看的第n個字母,如果超過z,則從a繼續數,這樣就得到了密文,比如attack,向後看第2個字母,就加密為cvvcfm。可還沒等到間諜說...

3977 密碼破譯

快速判斷長度為 x 的串是不是迴圈節,只需要判斷 len x 的串是否為區間的border。雜湊處理。注意到如果 x 不是迴圈節,則它的因數都不會是迴圈節。所以可以列舉 x 的質因子,長度除以質因子之後判斷是不是,直到不是迴圈節為止,這樣就可以得知最短迴圈節的這個質因子的指數。using names...