BZOJ2938 Poi2000 病毒 AC自動機

2021-08-13 21:36:24 字數 852 閱讀 9894

題目鏈結

發現乙個合法的串一定不會與病毒串匹配

如果讓它無限長,就說明一直匹配不到病毒串

如果找到乙個不經過病毒點的環,那麼就存在無限長度的合法串

ac自動機建完圖後,再用dfs判斷即可

**如下:

#include

#include

#include

#include

#define n 30050

using

namespace

std;

inline

int read()

int n;

char s[n];

struct node

}*root=new node;

queue

q;inline

void insert(char *s)

x->b=true;

}inline

void getfail()

while(!q.empty())

node *tmp=x->nex;

while(tmp!=root && !tmp->b) tmp=tmp->nex;

if(tmp->b) x->b=true;

}}bool check(node *x)

x->inq=false;

return

false;

}int main()

getfail();

if(check(root)) puts("tak");

else

puts("nie");

return

0;}

bzoj 2937 Poi2000 建造釀酒廠

time limit 1 sec memory limit 128 mb submit 67 solved 23 submit status discuss abstinence 島上的居民很喜歡飲用純釀的啤酒。迄今為止,他們都是從波蘭進口啤酒,自己不生產。但今年島上的乙個城市決定建造乙個釀酒廠,供...

POI2000 迷宮的牆

迷宮的牆 給出一棵有 n 1 個節點樹,每個節點都有一種顏色,一共只有三種顏色,每個非葉子節點的出度為 3 每個節點都指向編號比自己大的節點。樹以 1 號節點為根,樹的所有葉子節點都指向節點 n 而且每個節點的三條邊是有順序的,編號為 1,2,3 針對每一條 1 to n 的路徑,我們可以用一次遍歷...

洛谷2444 BZOJ2938 病毒 AC自動機

題目鏈結 題意 給你n個01串,這些01串不能在你的串中出現,問你是否能構造出無限長的01串。題解 乍一看是挺不好想的。無限長會想到得到乙個可行的迴圈節,那些串不能出現卻不太好處理。我是聽別人講的這道題,所以我也沒有想好該怎麼說明才能想到ac自動機的,如果有能給出乙個合理的思維過程的朋友歡迎與我交流...