平平帶著韻韻來到了遊樂園,看到了n輛漂亮的遙控車,每輛車上都有乙個唯一的名字name[i]。韻韻早就迫不及待地想玩名字是s的遙控車。可是韻韻畢竟還小,她想象的名字可能是一輛車名字的字首(也就是說能確定乙個i,使s是name[i]的字首),這時她就能玩第i輛車;或者是乙個無中生有的名字,即s不是任何一輛車名字的字首,這時候她什麼也不能玩。
你需要完成下面的任務:
1.韻韻想了m個她想要的名字,請告訴她能玩多少次。
2.由於管理員粗心的操作,導致每輛車的擺放位置都可能出現微小的差錯,原來第i輛車現在的位置可能是i-1、i、i+1中的任意乙個(第1輛車的位置不可能是0,第n輛車的位置不可能是n+1)。請你計算出共有多少種可能的排列。
注:資料保證當s是name[i]的字首時,i是唯一確定的。一輛車可以玩多次。
第一行是2個正整數n、m。
接下來n行,每行1個字串name[i],表示第i輛車的名字。
接下來m行,每行1個字串s,表示韻韻想要的名字。
第一行輸出韻韻能玩的次數。
第二行輸出共有多少種可能的排列。
4 4abcd
defaaa
abccc
abaa
abcabcc35
【資料規模】:
對於題目涉及到的字串嚴格區分大小寫,且長度小於255。
對於20%的資料 n≤10,m≤10;
對於40%的資料 n≤1000,m≤1000;
對於100%的資料 n≤10000,m≤10000。
第一問字典樹很簡單
第二問明顯方程是f[i]=f[i-1]+f[i-2],因為與後面交換與跟前面交換實際上是乙個道理
換和不換轉移一下就可以了
code:
1 #include2 #include3 #include4 #include5
#define n 100005
6#define p 10000
7using
namespace
std;
8int ch[700001][52];9
inttot,num[n];
10void insert(string
k) else19}
20}21string
name[n];
22string
f[n];
23string add(string str1,string str2) else
35 len1=str1.length();
36int cf=0;37
inttemp;
38for(int i=len1-1; i>=0; i--)
44if(cf!=0) str=char(cf+'
0')+str;
45return
str;46}
47struct
gaojin
50};
51 gaojin operator +(const gaojin a,const
gaojin b)
57while(c.a[c.top]>=p)
58return
c;59}60
void out(const
gaojin c)65}
66int
main()
73int ans=0;74
for(int i=1; i<=m; i++) else85}
86if(flag)continue
;87 ans++;88}
89 cout<'\n'
;90if(n==0
) 94
if(n==1
) 98
gaojin a;
99 a.top=1
;100 a.a[1]=1
;101
gaojin b;
102 b.top=1
;103 b.a[1]=1
; 104
for(int i=2; i<=n; i++)
109out(b);
110return0;
111 }
over
4 字典與字典練習
python中字典 dict 的詳解 python中的字典是python的一種資料結構,它的本質是key和value以及其對應關係的一種集合,乙個key可以對應乙個多個value。合理的使用字典能給我們程式設計帶來很大的方便。字典的 key 不能變 vaues 可變 字典 是雜湊表 無序的。字典的方...
字典樹 與 01字典樹
字典樹可以降低空間複雜度 01字典樹可以降低時間複雜度。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較...
字典樹實現 10 字典樹
字典樹就是一種樹形結構,優點是利用字串的公共字首來節約儲存空間,比如加入 abc abcd abd b bcd efg hik 構造出的字典樹如下 基本特徵 下面我們先實現乙個字典樹,假設所有單詞的字元僅僅是 a z 幷包含以下功能 void insert string word 新增word,可以...