傳送門
顯然是建圖跑最長路一類的問題,我們需要將
字尾樹上對於點
而構造目標串的過程是:先選擇乙個
那麼隨便怎麼建一下圖就可以了。
至於構造的目標串能否無限長,只需要看建出的圖有沒有環即可。
務必用拓撲排序實現。spfa只有暴力分
code_by_uselessname
#pragma g++ optimize(2)
#pragma gcc optimize(2)
#include#include#include#include#include#include#include#define get getchar()
#define ll long long
using namespace std;
namespace fastio
while('0'<=t&&t<='9')
return s*f; }}
using fastio::read;
const int n=200005;
const int m=2000005;
const int an=400005;
const int am=26;
const int lim=19;
int n,na,nb,tot,bac[an];
ll dp[m];
int ina[n],outa[n],inb[n],outb[n];
int prt[an][20];
struct node;
bool cmp(node a,node b)
vectorinf[an];
namespace suffixauto
void init()
void insert(int v,int _pos)
} }void topsort()
}using namespace suffixauto;
struct linel[m];
int h[m],lcnt,in[m];
void link(int u,int v,int w);h[u]=lcnt;in[v]++;
}int topsum;
void __topsort() }}
void buildgraph()
char s[n];
void clear()
for(int u=1;u<=tot;u++)h[u]=in[u]=dp[u]=0;
root=cnt=lcnt=tot=topsum=0;
}void solve());
} nb=read();
for(int i=1,l,r;i<=nb;i++));
} buildgraph();
__topsort();
if(topsum!=tot)cout<
else
clear();
}int main()
十二省聯考 2019 字串問題
以前寫完題後鴿了部落格,現在補一下。今天下午機房的人在大螢幕上一直掛著 ioi 的榜,關注亞塞拜然那邊的比賽情況,我本來是衷心祝願中國隊能有人阿克 day1 的 zzq?然而六點後回來發現只有班傑明阿克了 實際上他還是三小時就阿克了 中國隊最高的是 zzq 和俄羅斯的 300iq 好像是並列第三?可...
十二省聯考2019 字串問題
現有乙個字串 s tiffany 將從中劃出 n a 個子串作為 a 類串,第 i 個 1 leqslant i leqslant n a 為 a i s la i,ra i 類似地,yazid 將劃出 n b 個子串作為 b 類串,第 i 個 1 leqslant i leqslant n b 為...
十二省聯考2019 字串問題
首先,我們可以把題目轉變成這樣 對於一些a類串,其有連向某些b類串的邊 對於某些b類串,其又有連向某些a類串的邊。要你找出一條權值最長的路徑。此時顯然如果成環則答案一定是 1 a到b的串題目已經給出了,關鍵是b到a的串。我們發現,若某個 b 是 a 的字首,則 a 由 b 在後面新增字元得到,需要在...