福爾摩斯從x星收到乙份資料,全部是小寫字母組成。
他的助手提供了另乙份資料:許多長度為8的密碼列表。
福爾摩斯發現,這些密碼是被打亂後隱藏在先前那份資料中的。
請你編寫乙個程式,從第乙份資料中搜尋可能隱藏密碼的位置。要考慮密碼的所有排列可能性。
資料格式:
輸入第一行:乙個字串s,全部由小寫字母組成,長度小於1024*1024
緊接著一行是乙個整數n,表示以下有n行密碼,1<=n<=1000
緊接著是n行字串,都是小寫字母組成,長度都為8
要求輸出:
乙個整數, 表示每行密碼的所有排列在s中匹配次數的總和。
例如:使用者輸入:
aaaabbbbaabbcccc
2aaaabbbb
abcabccc
則程式應該輸出:
4這是因為:第乙個密碼匹配了3次,第二個密碼匹配了1次,一共4次。
資源約定:
峰值記憶體消耗 < 512m
cpu消耗 < 3000ms
#include
#include
#include
#include
#include
using
namespace std;
#define seed 7
//權string mima[
1000];
//用於儲存密碼
vector<
long
long
> hash_arr;
//儲存隱藏密碼的字串的雜湊值
long
long ans=0;
//計算結果
long
long
hash_
(string &str,
int bits)
//獲取字串bits位的雜湊值
return hash_num;
}void
bian_hash
(string &str)
//對隱藏密碼的字串自行編碼
intmain()
bian_hash
(s1)
;int size = hash_arr.
size()
;for
(int i=
0;iwhile
(next_permutation
(mima[i]
.begin()
,mima[i]
.end()
));//permutation求全排列
} cout
}
藍橋杯 密文搜尋
密文搜尋 福爾摩斯從x星收到乙份資料,全部是小寫字母組成。他的助手提供了另乙份資料 許多長度為8的密碼列表。福爾摩斯發現,這些密碼是被打亂後隱藏在先前那份資料中的。請你編寫乙個程式,從第乙份資料中搜尋可能隱藏密碼的位置。要考慮密碼的所有排列可能性。資料格式 輸入第一行 乙個字串s,全部由小寫字母組成...
歷屆題目 密文搜尋
福爾摩斯從x星收到乙份資料,全部是小寫字母組成。他的助手提供了另乙份資料 許多長度為8的密碼列表。福爾摩斯發現,這些密碼是被打亂後隱藏在先前那份資料中的。請你編寫乙個程式,從第乙份資料中搜尋可能隱藏密碼的位置。要考慮密碼的所有排列可能性。輸入第一行 乙個字串s,全部由小寫字母組成,長度小於1024 ...
2015 藍橋杯決賽 密文搜尋
福爾摩斯從x星收到乙份資料,全部是小寫字母組成。他的助手提供了另乙份資料 許多長度為8的密碼列表。福爾摩斯發現,這些密碼是被打亂後隱藏在先前那份資料中的。請你編寫乙個程式,從第乙份資料中搜尋可能隱藏密碼的位置。要考慮密碼的所有排列可能性。資料格式 輸入第一行 乙個字串s,全部由小寫字母組成,長度小於...