Jzoj4348 打擊目標

2022-05-09 14:50:28 字數 1067 閱讀 3083

又是被水題坑了。。。

一直想不出來看題解說要什麼主席樹,於是開始打離線演算法

發現直接ac自動機似乎可做?樹剖之後在ac自動機上跑的時候判斷一下不就好了嗎!連線段樹都不要

讓後快樂切掉,速度還可以(廢話,人家n^2暴力都跑得飛快)

#pragma gcc opitmize("o3")

#pragma g++ opitmize("o3")

#include

#include

#include

#include

#define vs (*s-'a')

#define n 100010

using

namespace

std;

struct acautomation

inline

void insert(char* s,int pos)

inline

void build()

} inline

int query(char* s,int l,int r)

} return ans;

}}ac;

char s[n][12],c[n];

struct edge g[n<<1];

int h[n],d[n],f[n],top[n],son[n],sz[n];

int l[n],r[n],n,m,cnt=0,clk=0,t;

inline

void adj(int x,int y); h[x]=cnt;

g[++cnt]=(edge); h[y]=cnt;

}void dfs(int x,int p)

int glca(int x,int y,char* s)

if(d[x]>d[y]) x^=y^=x^=y;

return max(ans,ac.query(s,l[x],l[y]));

}int main()

}

9011 打擊犯罪

time limit 1 second memory limit 128 mb 某個地區有n n 1000 個犯罪團夥,當地 按照他們的危險程度由高到低給他們編號為1 n,他們有些團夥之間有直接聯絡,但是任意兩個團夥都可以通過直接或者間接的方式聯絡,這樣這裡就形成了乙個龐大的犯罪集團,犯罪集團的危險...

SSLOJ2342 打擊犯罪

某個地區有n n 1000 個犯罪團夥,當地 按照他們的危險程度由高到低給他們編號為1 n,他們有些團夥之間有直接聯絡,但是任意兩個團夥都可以通過直接或間接的方式聯絡,這樣這裡就形成了乙個龐大的犯罪集團,犯罪集團的危險程度唯一由集團內的犯罪團夥數量確定,而與單個犯罪團夥的危險程度無關 該犯罪集團的危...

codevs5971 打擊犯罪

題目描述 description 某個地區有n n 1000 個犯罪團夥,當地 按照他們的危險程度由高到低給他們編號為1 n,他們有些團夥之間有直接聯絡,但是任意兩個團夥都可以通過直接或間接的方式聯絡,這樣這裡就形成了乙個龐大的犯罪集團,犯罪集團的危險程度唯一由集團內的犯罪團夥數量確定,而與單個犯罪...