一种错的SAM 的hack 94分 WA6
查看原帖
一种错的SAM 的hack 94分 WA6
754153
gdf_yhm楼主2024/1/9 20:52

找出最短的建 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
2024/1/9 20:52
加载中...