一看字串就想到ac自動機是不是沒救了
然後決定在ac自動機上做分層圖最短路233333333
結果發現極限資料剛好卡時限了qaq
仔細一想好像每條邊的長度都是1哎。
果斷bfs
其實dfs應該也可以的吧,而且可以剪枝。
但是我有dfs恐懼症,於是果斷選擇了bfs。
結果跑得奇慢無比。。。。。。。。
不談了我想靜靜
#include#include#include#include#includeusing namespace std;
const int inf=1e9;
struct node
}tr[605];
int sz;
int bin[20],n;
void insert(char *s,int val)else tr[u].ch[i]=tr[tr[u].fail].ch[i];
} }}int fromu[605][4100],froms[605][4100];
bool vis[605][4100];
void print(int u,int s) }}
void bfs()
}} }
}char s[55];
int main()
build();
bfs();
return 0;
}
bzoj1195 HNOI2006 最短母串
此題似乎是乙個dp。dp i j 表示選了i這個集合的字串,最後乙個是j的最短字串。字典序順便搞定 然後發現需要處理掉一串為另一串子串的情況,特判一些特殊情況 或者奇怪的姿勢 就好了。這題很卡空間,請務必不要亂開陣列。include define gc getchar using namespace...
BZOJ1195 HNOI2006 最短母串
給定n個字串 s1,s2,sn 要求找到乙個最短的字串t,使得這n個字串 s1,s2,sn 都是t的子串。第一行是乙個正整數n n 12 表示給定的字串的個數。以下的n行,每行有乙個全由大寫字母組成的字串。每個字串的長度不超過50.只有一行,為找到的最短的字串t。在保證最短的前提下,如果有多個字串都...
BZOJ 1195 HNOI2006 最短母串
time limit 10 sec memory limit 32 mb submit 1346 solved 450 submit status discuss 給定n個字串 s1,s2,sn 要求找到乙個最短的字串t,使得這n個字串 s1,s2,sn 都是t的子串。第一行是乙個正整數n n 12...