題目描述 description 靈夢有n個單詞想要背,但她想通過一篇文章中的一段來記住這些單詞。字串hash+某種奇怪的區間統計o(n)輸入描述 input description 第1行乙個數n,文章由m個單詞構成,她想在文章中找出連續的一段,其中包含最多的她想要背的單詞(重複的只算乙個)。並且在背誦的單詞量盡量多的情況下,還要使選出的文章段落盡量短,這樣她就可以用盡量短的時間學習盡可能多的單詞了。
接下來n行每行是乙個長度不超過10的字串,表示乙個要背的單詞。
接著是乙個數m,
然後是m行長度不超過10的字串,每個表示文章中的乙個單詞。
輸出描述 output description
輸出檔案共2行。第1行為文章中最多包含的要背的單詞數,第2行表示在文章中包含最多要背單詞的最短的連續段的長度。
樣例輸入 sample input 3
hotdog
milk
hotdog
dogmilk
hot樣例輸出 sample output 3
資料範圍及提示 data size & hint 對於30%的資料 n<=50,m<=500;
對於60%的資料 n<=300,m<=5000;
對於100%的資料 n<=1000,m<=100000;
hash函式可以把每個小寫字母字串表示成乙個獨一無二的27進製數。
#include
#include
#include
#include
#include
using
namespace
std;
const
int mod=5000000;
typedef
unsigned
long
long ll;
int n,m,cnt=0,t=0,ans=0,ans=0x7fffffff,v[mod+2];
char ch[12];
struct hash hash[mod+2];
ll godigit (char *s)
return ans;
}int hash (ll val)
int main ()
scanf("%d",&m);
for (int i=1;i<=m;i++)
}printf("%d\n",cnt);
int l=0,r=1;
while (r<=m)
while ((!hash[v[l]].mark||hash[v[l]].col>1)&&lprintf("%d\n",ans);
}
CodeVS3013 單詞背誦
靈夢有n個單詞想要背,但她想通過一篇文章中的一段來記住這些單詞。文章由m個單詞構成,她想在文章中找出連續的一段,其中包含最多的她想要背的單詞 重複的只算乙個 並且在背誦的單詞量盡量多的情況下,還要使選出的文章段落盡量短,這樣她就可以用盡量短的時間學習盡可能多的單詞了。第1行乙個數n,接下來n行每行是...
CodeVS3013 單詞背誦
靈夢有n個單詞想要背,但她想通過一篇文章中的一段來記住這些單詞。文章由m個單詞構成,她想在文章中找出連續的一段,其中包含最多的她想要背的單詞 重複的只算乙個 並且在背誦的單詞量盡量多的情況下,還要使選出的文章段落盡量短,這樣她就可以用盡量短的時間學習盡可能多的單詞了。第1行乙個數n,接下來n行每行是...
2010單詞這樣背
轉貼 單詞這樣背 第一條,就是 一定要每次都大量地背。因為自己不比別人聰明,所以背完單詞,別人忘掉五分之一,自己決不會比別人忘得少。然而,別人每天背十個單詞,自己卻可以背一百個,忘掉五分之一,還剩八十個,是別人最聰明狀態下的十倍。每天一百個是最低限。其實背到後來您會發現這個要求並不高,乙個月後,您可...