找出最短的建 SAM。用其他跑自动机,记录每个节点最小值再取最大值。
问题可能是每个节点要 parant tree 向上贡献,不是很清楚。
WA代码:
void go(int &p,int c,int &l){//延SAM走字符 c
while(1){
if(a[p][c]){
p=a[p][c],l++;
break;
}
if(!l)break;
l--;
if(l==len[lnk[p]])p=lnk[p];
mx[p]=max(mx[p],l);vis[p]=1;
}
mx[p]=max(mx[p],l);vis[p]=1;
}
mems(mn,0x3f);
for(int i=2;i<=n;i++){
int nd=1,l=0;
for(auto c:s[i])go(nd,c-'a',l);
for(int j=1;j<=cur;j++){
if(vis[j]){
if(i==2||bk[j])mn[j]=min(mn[j],mx[j]),bk[j]=1;
mx[j]=0;vis[j]=0;
}
else if(bk[j])bk[j]=0;
}
}
for(int i=1;i<=cur;i++)if(bk[i])ans=max(ans,mn[i]);
这种写法在 loj171 SP1811 SP1812 SP10570 中都能通过。对拍 8000+ 组后找到 hack。
5
haideicfdehefbfjjgcjgjjbcajfedjidhjdehbdcahbafijfehafhachjadgcabjaffaebabiihhgjhfegdebhhjhbehfcfdfhiceiffghbbejadcefjfdchdebacacadafijdigcieidgjgifgaieffjaedchhagaiejeageeifejafaaejjajbbifjdefbdbacjfjbagafgacaeeeggahhihcgbccdgafgdfifihbggbcbbefhfcfbeijeddfchhegfhaecdiacbeeifahahghffidhgdahhgjibhgeahbcbdfjcdccejdafdhajgfagihghgdjaijdgahihcjaecighagehcdgaeafcbhcfiffhfcajbbiedfcahadcjdjdeciidbbaccgedhdgaiiddabaheifghcjchdgdjaadgfhighehgaegggbdgjffegbedddahebdgajdaeccgfgibefgigjgdjgeiegidjgdieejdfbffbjbfgicaeigedchbeibhfhbafdefdiabgaeghhggagfhaagcaccjggeadjdjaiahfafgjecabcabjgiegjgdhfdejaihgjajfibecaeijjiebejdbbgebeidfgeafbhdejdgieiacabhecgedhagaaihaiiiagdjaaefchdfgcagaebeihheiffjacjidhcjjacgbijdjccebjcdfbccjciedfhcaebdbifjbcehhfehgfbiechheieiccaccfjhejfgiifaiaifjabhbjgecjfjbjgagabgibgbadddigaeaeiihiedbdedaadceghejhaecfafjdhhaiacabajbgceghhhcfjfbacgcfbcdiiiedcjcdgceghcjcfjfchdahjbidibggggeifdiijiiccdfiedjddejhgbjbefcehbcajaefeiegachdjdgffifcdbciagchjccjfghheadhfdbgacidcdcbbbfbeddiebihcabbjcjddgifjeigheaecgiihijaeechahcihgaeddicffbbdgacjbcgedifhcefffhfiijfgedibehhadejhebjiejefgacebgbafibjbaaehehhgeccibchiifgeefediabfbaaifedjgjfdcahbafhdbcabejidbhedhefgeciacegcbceihjjeaicfbfddfgehegehejdfchcfefehdfajacfgebdhbbcedigeadjgefaeddagcdahacaehgcchfeiidfgbhdhhhdeefajcieceaffcabedhgfdabjecjiiehjjedihifaedabiijaebbfdihbidehhdfgdhcfgcfacfiijadcidejcecfadcjghiejhdahejhffagfffddccfgjgajfceehbdfhfiijihchiadcbdiidigibcegbbbhgfdahhcachabbebbjahebhfhegdebahcjcbhdbeihfcjejhjfjhjccehcigihighbichdiiicbdfaiccjhegcfbiiifhiffhdeeceeghchacjicfagcadcaifefadbjbacbhjddagfcdfeiedficbhbababiebihifeddfdbhbcfbgicfacfidahegbcddgiabgbeeebddaegdeccbhbibefjahdjcfibhheedidghidjifdagdjcjbgjfbafiiebfbjhccidefhcddacdijdebhfbegfeggejchfejjhcffebgbjahjagcgffifgigjjicdegajcgacjchfifeefdjahefgjgjafcdgacebhjjgechiegbdahgadcgieececgdcbagdbjceabbddedccejhfjgccgiehicghjjiacfafaeidbgbaijidijdgdagbbijeaacfhdhajhgjjajhgfigifcehfjifbighidbbbdfdhgecggfejijfccdbjfhcecbbbigcffjbjecccdeddcfccdfhggbicficfijbdgjheiabbdeicfgjhah
ifjedbeicbgaehcfaahhbfbhfeajchgegihdibbgdgbgdecedhfjhccjehaadegibfbhfbdafdfgegajfdfedfjcacggachcibcicdiiaifajfhejhejagdeifjibjgcheediddfbbcdgafidabbggibaeaggbejhcdajjbeaeghebjiaebdcjhafgihecjafedciejjifbhjbiachbcbhgahbabbdagjffacbchcigcgedifbgcfdbiifghafjhifbafgafibcbeiffdfjjbdjeejhigbhhjeffgbghchfebgdgiheahhhidiechdicdcffjajgejdjjeaaejeghijfbiiifffadfahbgcdahbeibachcidigjgcdebeajhhgggcebefdjjgdggfchigdgafhbbeaicgcegaagghagceehijgaabcedefgjejhigfiihifebejecfgbfegjjjcbchfgacicahfbhecifdhagcegheaeebhiibjgifaechidedcgeghjjbgbbdecjeaciahbijfifhchgdbjidfhbfbfbajfhcgfeiigaecjibggiicihagchahjdhaeieabeehaeaiefghicfhiaachaabjhdaifgdecabaegighiaeicihhbgdgcecafgdafhgbadjgghieibiigfidgcjedfhhgdhdjjajhabejjgjcdhgegchbjbcjdiagijiejjcddihhdcgihgahehficffgbjeegchjjcabgjdeffidibejcceacdbcedfgcdhecjbfihibfcibffiajjbjedidhjbgiichfcjdcagicjjgjceaddfcchijbcbddbffgcgcdhjdfbejhjdgfbbjfjdgiiffeecafeieebheegdaafhbcdfeebicbaiiggaabbbjigaijfbbfgecffgeihchjfcaedfgchgegihghfehgjijhcabhgdbffeijbbibdjgceigdadgajjdibbbjfabifidechfbgdjjcbijdadeidibhhbahbgjhijdjebjabjcagjcbgcffgicdgdciaabeacdiaeeaigggdfihafafjccfifghhjgfadghajdgjcifcahdedbiigjffecaagdigaaacehacibjhbdddihdfgggdgfhbjgfifcieeahijihacbabdgcccafeeececcdbfbaibfddheidjbbbadgdhghfeeeghjcbibhghiicejjjbaeffiggejgeecfhdfiaeejefcebeiaadigijecffbgdfjjjdehacjecjjadabfgeggbiedaibhijchibdgbaibedbbeiaehbdihefjebddjjiiahidjechdajbhaabbjijbcijfdhadhhcbhadcjacdgjcgciecbcebgjgafadbdiabacjeghjgdeciaadgcifgejgadbbhabibfgigjgjcaaabjdigddjchaaffifeeididccgacehhaagcfbgafaffcfbbhjifaachbdccibjfegfifdchfdcbejbcbjfichggabcbefegihgdfdgahdgeffcaggfhcfgbjaejbaficejbaaeafcghdiafhbigbfajcgeahjigabibfccgjddcciiacjgafhadgbcbehaafccjbjicjcfcbjefhbjdhgfbjdfefeddhaefjeaieacgeccfjdaabfjbacjhdeghfheehceefebceiehddfhegfgidbciaegbhjicdhbjfaibaiebgeajaceibbjidfjagdicghdcfhddfaadjdgcdebhfgbgiagehcceejcjgahhjadiigjgceiffihgfdfffeccfcjhafeecjfcghjdibjjfcaheedjcfbbcdhhfgbcbhfgcejgfiehggcdbeebbihgabcghbcdbiihecadigaifdheadchbbchbcebbhjiigjigaifgdgafjeabfagaddfijjhgedjjjgafebjbgaec
hbhcgajddgcegjefedjhhifbjhejfebefgebchaabfjdiajabbdeghcebgjfgibfdigaajjibhejhiddfbcbbfbaafdcfhffjfbbjccijjadcfjbibbdjdbggfjbcfjchiaedjhcjjcigjijedbicdaacedbdcahahbhdcdbibjhjededbfgbfbjiegeejcbbicddefjhhcjehbcfhjagdfgbddafgcbaiajjhbfgbjaddbihechfabajcjgdgjfebadjdieibhababdhhfeihgdjabdcjicbbicbfgghbgaieihffdihaejhdcbbhghdhhjihdcfcbdbegjbgbfbbegbjhdhfageejcidfbejgfjefdfagbgegejcgccfdjiaaciigfahghagcdfgbbhcedfjeiagjjjdhhaebbbagcgfeadhjajadcihfccibjahdifhiaeficibdceacceeciehhjfjahdedahcaghebiieahaediaabcdebfhefgbjcdcdiahfhgfjbjbcahfcciahabfbjhbjaefhgidbhhdabbbfhhjfcdffgfjajijijgbacjhejabegceefbdfhfihhibicghichgiecdgabjddjgcjajaijfcidhbgehhhghgibafhfbfjcfhbichjibafghdggbgbdichfbihdidjjjfijacacgjhgbbgdiadfbfabccdhehihaicciacaabideieaihcdebjdgfddegajdheiicgiefigagbdfbjffgbddjebaggjgiicgfabaeieehijeieicjgejgchhfagbddbjhaigijefbjcddgcfaadgjjjbiahafibhgdjehhgdeaaigbcijbdgfedihhidjaijcjfgfgggcedhjabcjddbgehiecaabcfjghjgdjbghjaddhefgbbjacfddaafdabidgbadiebgajibjfbghhehddcfaajcbgcehijjiieeieghheaagafhdfdhidicehhbbffccdbeecefhhaihdebghfdghibafddjighdeegfagfighjeijidicfdbfdheaeebigegjfgaedgbjjfaeechhahiddhdhaejbfdbafgfgjidfeiedhgbecheicejigijbfddjeacgfgffhbieaaebhaigcgihcbcggahcfabhjhceadfdfdifaigbfiajacaegbcfgdfcjaigghgbeeeghhbjhicgegjehibgjjjjjiaehddgafbfeaafdfhbfehaieedigbhgegbficchbdeidcbfdcbghgjaebbabbgdgcjfcabgbfagdjhbiecbbcghbeaadeeabcfhdabfighhffbgffdcbjffcbecehhjbffjfbiecgbhgdddjbgfhjgcfchejhjbbdhcgcaafeeafibcgdadbeidfdbecjeahigchbjhbfecdhjbegbbiciijedbfhbiehibgedjchifdecheccfjhebadadbhagjdbiaajbjfbacciiiechcdhdfdiajcaabgdfgajddghjiibidbgfjdddbjaiafeahdajacafgejgcaddehjejeihdgadbcebdhdgafbibghfaeaiebfaefgfcegiccajegdaegbdachdcdgcgjfjjajhhhgihgedjiccgdbebafdjijbbihigdfdieiifagffgdgbjddicdfgijbibbdhddjcaeiabhfjdahahcaejehhfiebgbdbjdjeibifhhaaehhbfdbhfgfebhbfijfjhibfbhjdfccdeecbbegiagicaihbgdajchbehbhjacddbbjceebjddabjbfaijajdidaieicahedffgcddibbjjeaiihhhheehdedajcgfejbafebbdfigcibbbhcfbeiajbjbaideaichdffhiahijeeajdhajaejajgbhaheihdgibdbafhbfjcfhdfaajabjjcejhajgbiacdjacfecbcd
bicadhcdchbefdbedcdjjediecbfgeefcaiddiaidafaibbgdciidefdccfcbghiehedceibcigegbccbhhjdbiagbcicdabhfigefdigafghdfedfccabfaadgahhajhjjbjdfcdccdeefffeeieajiegdgigeaaagcchdidggahiedjeeagbfeiiajdebdecfibdebjjjdffbbaghdgifbbeceihebfdjaabfbdeebcchgjhcbcafagbfjicicjjeijbbdajdfhfdgaagagbcbbbbchcijfbfdgihihgjhgdeiecibificdgfjehfijcgcdfgicdbigijffahhidaiiajdidbcdigfigceeehgfcdadjcfejhcaieijfhgjbijjbgegaggbidhaedaijchhdjiffeabfbjbiibbaejeaciaedghceajjhgahjbdgehaiaeiaahihgedfdfdidhfabcaabgdffgdihjjaijhfeccfggehiefecbeeijibdidccgjddcfijhhbfiiifceehchhfciidaaeaiidiabjcbjdddfdechgchfgecfeaficgegcgdbecidhhifjiaigghbfgbdaibahifddigjfiehcdigcchjbjjjjjbgidedbiihcfcbhhhdighfijaehdcfcgeiidhhgahadiifijjcgafgegfjjhadccdjfgijbfgihdjdchgfabfagjhehefdicghjffbciededffefeegaabbehfjegdgbafeigfggabfjcfjdfibihgjihfideidfibbiefbabjacdghgajhjhbebceiecgdjaeddajhabdjdhecbgfdhcjhciaejeegfdhidabjcafdjageaeadhigeiadijahfeggedibhdafgdbhhjacffcfhghfehgdeebbbgeaijfdfhjabdedeijabjhafgicfihdgibagffagaiccgbjajhiadjcjbadajhbdbjdfghdbgddbhaihjbbadhiifjhcbbbiaahidaibffefcfbhhefahcibjccijeiedfefjfaaaeidjbebcccgdfjhdijajjgbbdghfcjcefffahcgjiibgegbidicicfifcdcedhidgeijeaegbgdbghcbcfagbdbcceccfcgjahgbgcjadjabcabjbajifcgjecaibcgdeiffjehdjdbhccbdjhcdheafidijgdfdidicehjachehjgbefihcgfbdacgcbdhebfhgehcdejefigabbfaeiaebchieabhidgccejcedbjifbefcbjdffdijgdifbdjhbdbadddcfbibbbdgefidbadadihfdhaeebgfaddafbaiedbgdacihgbjghhdfgabidibifaghdhdcdgfbagafjjgcahbbahchhbhdjfgibgbdffjgaadbbefdbhebbfbfhgahjjceacihfjhabedihfjahijjijhbhbgheeaaeddcefeabegbbciibageifdcifejjcddfgiabccbiiicjcajhdjjbeeagcgegbfjcjcgafadjdjaghcfbhhgbfaidddcjjeejcechcjfedhdiijibfegafaiefggididjgdifefbfbdjahjcibgjejheeadidagbcafigiibadaaahegahdbehfgjbbeihicadcecfdfgbcacbbffhgghaeibafdjggheehgaijfieibhdjbiefbdedejahaacagijjgaedbefhbjaddfadeeajchhghhihfhcdbiabbichjfccffhdghcdabgdhefcafehfjjecidbhhaijibafgjbgjiiaegehebcehcfafhbcbcddgbgajghbggjcihhifehhgfacfcijcbgechfbhefjjbdjijjjeacghfidgbhcgieacghgeifcgefbeafgdejdhhbddbgbffcahcgcaedafeiebiiahbjaggciadijegcifacighjfgbj
afgajajjegdcbgeedjggjgfeifcdccagdgfchihjjfdfdidcbehedjahbeehegafijcbecbgichjijdieeigceggbiicjgejhegjaebhfbfhbdcjaecaacgjgifficjhjbhdfbgddagcaedghegabfjjjbijhcgbddhadjbgjcbjjijifebacbdafggicicgaefcjejcdhfhghbggiccjfjbjeacdhfhbbdchjbbbajafbgcagajefejedacgaieigifiiddeicaecfcbbeeehdagdjbhbaaahjfacbeaahidhhhageajbdjfecefaaaidbicdcjgebbcbfghdbdcahechieighegidfidibieegaeafhgbjcfaiddghjdiijafbfhebbejfdaedhgcffceeaehfjbibbaghdjjhhjgadiahbdaagfcijiibcheigdefbjideabbcefddfhhbgedijiagjjgeigdjeagdefcegiegjccjijajadihajbegibgidfaffbhfajhiebeihdidgjbidgecfjefibiibaffeagbgijaifcififdegbbebhcbadjehjajcciebfaeadacjfidhiifjjbaggceehdbcfbbchcgjhcgcgbbafedhijihhcggfibibachgdifiagbeedjgjedjcchcbcgbeeecfcachciccijiachhjhdfifcjjfffjbfeccfaedbbjdhcjafggebgaccaiidjhhahjdjchfbddhfjdgfjfiddibdajagffhajiifgejcgidghbcfadeecfghahedjfghbdfeiecidiffdefigedhjfgdieeffjabfjdaadibaaaejehideggaabcjcfagigaefdhijejebbgcdcffjaahbihfffbefaehigeibiaafgbidgdgcjagggicijbhcbbgabgchfgcagcjggbifeiedabgcjgdbdjdgdaggddicbgdeighabbjbfdjgihiejijajghifhjigjedachiijaahbhbbfghaabghifbicegbeeeajidgdeahifcaghjcfhbccggdifcfedafffegajijidighghejcjeggdbbjhfhcgaieadcfahbiajjffggiggafbfcaeabfiacbaiebbiffhcggjhjhaeajcgeejhbigahgifjcffcedbefjhjhcaegicibebafjafjabbecdabidcaebcafgabiacbchjiaegaahjafdjbfhdfhidibhbegbigdjddhdifjcfcebhdegcegbjdcbcjeijjfccechdjifgeadefbjejffagageeeiagididhdhhgjfabebifibicgfbifdhfejadjehccjjddecdibecgjicdihaejaedjebdjiijiecagedijjddjjdaafiidffhdefcbgibjcdhhafjhfeecbbjafjgagifjccjfjgeihieeabifahhaifhifecjgjjgcjeejebfeieabgieebeiccfdijjgfdajidagicgbjhiidehjhejdjaichgdjabiafjfgahcdhdheihghagffhjhhigbaebiabafhibbgidiaaejgfacehgecehbjdjjadijbdieefbeidjfajeabfbjebdggfhhcfhefbdihifgcfhafhaccfeccjcdjdcheiaadfjdfbegccgjhhhgjidibcffccedhgahabehcaihhfidajahefjbgahbfcdiccegfjajgdeecccigdbcghdjbhiibciieeefgjebhegicagfjdiafdgecfadhcjabbgfcaacdjiijbfedcjecdhhcdfiagjfedegbiidgfhjeejgjgcaebjeidiiagafidgceechjifgbbebcdbhigdegabgbaejjjgcahhjhceiahhejdebgeaddbgfeegbebafhdeijbdejgigccjccadaabaeeiaahbdjcdhfhfgaffhcbgejcdgeh
ans:4
WA:3