如果你tle了
查看原帖
如果你tle了
514343
I_Love_QingYu楼主2025/2/3 09:32

sam的图是无环图,但是一个点可能被多个点到达,所有我们在求一个点权值和的时候,先判断这个点有没有值,有值就直接跑路了

void dfs2(int x){
    if(f[x])return;
    f[x]=sum[x];
    for(int i=0;i<26;i++)
        if(ch[x][i]){
            dfs2(ch[x][i]);
            f[x]+=f[ch[x][i]];
        }
}
2025/2/3 09:32
加载中...