日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

遥控车_vijos1458_纪中1724_水

發(fā)布時(shí)間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遥控车_vijos1458_纪中1724_水 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Description

平平帶著韻韻來(lái)到了游樂(lè)園,看到了n輛漂亮的遙控車,每輛車上都有一個(gè)唯一的名字name[i]。韻韻早就迫不及待地想玩名字是s的遙控車。可是韻韻畢竟還小,她想象的名字可能是一輛車名字的前綴(也就是說(shuō)能確定一個(gè)i,使s是name[i]的前綴),這時(shí)她就能玩第i輛車;或者是一個(gè)無(wú)中生有的名字,即s不是任何一輛車名字的前綴,這時(shí)候她什么也不能玩。
你需要完成下面的任務(wù):
1.韻韻想了m個(gè)她想要的名字,請(qǐng)告訴她能玩多少次。
2.由于管理員粗心的操作,導(dǎo)致每輛車的擺放位置都可能出現(xiàn)微小的差錯(cuò),原來(lái)第i輛車現(xiàn)在的位置可能是i-1、i、i+1中的任意一個(gè)(第1輛車的位置不可能是0,第n輛車的位置不可能是n+1)。請(qǐng)你計(jì)算出共有多少種可能的排列。
注:數(shù)據(jù)保證當(dāng)s是name[i]的前綴時(shí),i是唯一確定的。一輛車可以玩多次。

Input

第一行是2個(gè)正整數(shù)n、m。
接下來(lái)n行,每行1個(gè)字符串name[i],表示第i輛車的名字。
接下來(lái)m行,每行1個(gè)字符串s,表示韻韻想要的名字。

Output

第一行輸出韻韻能玩的次數(shù)。
第二行輸出共有多少種可能的排列。

Sample Input

4 4

Abcd

DeF

AAa

aBccc

Ab

AA

AbC

aBcc

Sample Output

3

5

Hint

對(duì)于題目涉及到的字符串嚴(yán)格區(qū)分大小寫(xiě),且長(zhǎng)度小于255。
對(duì)于20%的數(shù)據(jù) n≤10,m≤10;
對(duì)于40%的數(shù)據(jù) n≤1000,m≤1000;
對(duì)于100%的數(shù)據(jù) n≤10000,m≤10000。

題解

抱著第一題不會(huì)太難的心態(tài)看,然后就懵了

第一問(wèn):

查找,判斷+統(tǒng)計(jì)。普通的暴枚會(huì)TLE,用一個(gè)神奇的優(yōu)化方法把字符串轉(zhuǎn)成類似前綴和的東西比較,速度驟然上升

第二問(wèn):

先是一本正經(jīng)列了一個(gè)2維dp如下

f[i][j]=f[i?1][j]+f[i?2][j?1]
表示前i輛車有j輛和右邊交換位置,因?yàn)楹陀疫厯Q等同于和左邊換所以不作考慮
然后你就會(huì)發(fā)現(xiàn)j是個(gè)醬油
設(shè)f[i]表示前i輛車的總方案數(shù),則
f[i]=f[i?1]+f[i?2]
這是什么???!!!!
斐波那契數(shù)列
由于數(shù)據(jù)大,要打高精度
嘗試過(guò)矩陣乘法,然后要打高精加和高精乘,于是我可恥地放棄了

代碼/pas:

typenum=recordv:array[1..3000]of longint;len:Longint;end;
varn,m,i,j,ans:Longint;st:array[0..10000,0..300]of real;l:array[0..10000]of longint;a:array[0..10000]of real;u,v,w:num;s:string;
function add(x,y:num):num;
vari,t:longint;
beginfillchar(add,sizeof(add),0);add.len:=y.len;if x.len>y.len then add.len:=x.len;t:=0;for i:=1 to add.len dobeginadd.v[i]:=(x.v[i]+y.v[i]+t)mod 10;t:=(x.v[i]+y.v[i]+t)div 10;end;if t<>0 thenbegininc(add.len);add.v[add.len]:=t;end;
end;
beginreadln(n,m);for i:=1 to n dobeginreadln(s);for j:=1 to length(s) dost[i,j]:=st[i,j-1]*1.9+ord(s[j]);end;for i:=1 to m dobeginreadln(s);l[i]:=length(s);for j:=1 to length(s) doa[i]:=a[i]*1.9+ord(s[j]);end;for i:=1 to n dofor j:=1 to m doif st[i,l[j]]=a[j] theninc(ans);writeln(ans);u.len:=1;u.v[1]:=1;v.len:=1;v.v[1]:=1;for i:=2 to n dobeginw:=add(u,v);u:=v;v:=w;end;for i:=w.len downto 1 do write(w.v[i]);writeln;
end.

轉(zhuǎn)載于:https://www.cnblogs.com/olahiuj/p/5781268.html

總結(jié)

以上是生活随笔為你收集整理的遥控车_vijos1458_纪中1724_水的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。