第48个点MLE的疑惑
查看原帖
第48个点MLE的疑惑
632785
Sakura_Lu楼主2022/11/14 16:03

判断是否应该将一个点入队时用方案数组(f)是否有值来代替会导致重复入队并MLE 但是前47个点答案还都是对的……改为用vis数组判断一下是否入过队就过了 为啥?

正确写法

for(auto v:G[u]){
    if(!vis[v]){
        dep[v][op]=dep[u][op]+1;
        q.push(v);
        vis[v]=true;
    }
    if(dep[v][op]==dep[u][op]+1)
    	(f[v][op]+=f[u][op])%=mod;
}

错误写法

for(auto v:G[u]){
    if(!f[v][op]){
        dep[v][op]=dep[u][op]+1;
        q.push(v);
    }
    if(dep[v][op]==dep[u][op]+1)
    	(f[v][op]+=f[u][op])%=mod;
}
2022/11/14 16:03
加载中...