洛谷
如果存在乙個無限長的串
證明可以在\(ac\)自動機上找到乙個環
然後在上面可以無限跳
所以構建\(ac\)自動機
在上面跑\(dfs\)就好啦
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define max 50000
struct node
t[max];
int n,tot;
char ch[max];
void insert(char *s)
t[now].lt=1;
}void getfail()
}bool vis[max];
bool vv[max];
void dfs(int u)
if(vv[u])return;
vis[u]=true;vv[u]=true;
for(int i=0;i<2;++i)
if(t[u].vis[i])
dfs(t[u].vis[i]);
vis[u]=false;
}int main()
getfail();
dfs(0);
puts("nie");
return 0;
}
Luogu2444 病毒(AC自動機)
洛谷 如果存在乙個無限長的串 證明可以在ac 自動機上找到乙個環 然後在上面可以無限跳 所以構建ac 自動機 在上面跑df s 就好啦 include include include include include include include include include include us...
洛谷2444 BZOJ2938 病毒 AC自動機
題目鏈結 題意 給你n個01串,這些01串不能在你的串中出現,問你是否能構造出無限長的01串。題解 乍一看是挺不好想的。無限長會想到得到乙個可行的迴圈節,那些串不能出現卻不太好處理。我是聽別人講的這道題,所以我也沒有想好該怎麼說明才能想到ac自動機的,如果有能給出乙個合理的思維過程的朋友歡迎與我交流...
洛谷P2444 病毒(AC自動機變形)
作為一道蹂躪了我一天的題 我也沒啥好說的了qaq 思路概述 我們知道,ac自動機是一種多模字串匹配演算法。構造 trie 樹 後,在模式串末尾一位的結點作上標記。平常的 ac自動機 是盡量能多接觸到這些標記,使總值最大。本題倒是有點奇葩,要構造乙個可行的無限長文字串,使沒有任何子串為給出模式串中的乙...