jzoj3189 解密 字串hash

2021-09-14 03:42:06 字數 1088 閱讀 8392

乙個句子有多個單詞。

給出了乙個加密了的串。加密方法是將不同的單詞轉換成不同的單詞。然後再給乙個加密前的串,求再加密串中可能出現的最早位置。

設a

ia_i

ai​表示與i

ii相同的前乙個字母的位置。

然後根據題目意思對與兩個串如果a

aa序列一樣那麼就是可以轉換的加密串。所以我們可以用字串has

hhash

hash

進行匹配。

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const ll xjq=

1000000007

;const ll hzb=

10007

;const ll p1=

9999991

;const ll p2=

1000007

;const ll n=

1000001

;ll hash1[n]

,hash2[n]

,a[n]

,b[n]

;ll len1,len,s,ans;

char c[n]

;map f;

void

pre_work()

}ll work_in()

return s+s1*xjq;

}void

init()

scanf

(" %s"

,c);

f.clear()

;while

(c[0]!=

'$')

}void

work()

if(ans==s)

ll l=0;

for(ll i=len+

1;i<=len1;i++)}

printf

("0");

}int

main()

字串加密解密

using system.security.cryptography using system.io 加密函式 static stirng encrypt string str descryptoserviceprovider descsp new descryptoserviceprovider ...

字串加解密

題目 1 對輸入的字串進行加解密,並輸出。2加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。輸入 輸入一串要加密的密...

字串加解密

題目描述 1 對輸入的字串進行加解密,並輸出。2 加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。介面描述 實現介面...