请求撤下题解+求问
查看原帖
请求撤下题解+求问
551100
Hoks楼主2024/8/23 08:17

请求撤下两篇题解。

第一篇题解代码中忘记给方点权值赋 11 了。

而且经过我一天的理解,我认为他的代码实现和他的思路不一致。

所以麻烦先撤下。

对于另一篇题解。

这篇题解的代码里也犯了一个低级错误:

if(x>n) for(auto dq:e[x]) if(dq!=fa) if(cnt-(!dp[dq])==0&&in[x][dq]==e[x].size()-1) dp1[dq]=dp1[x];
else for(auto dq:e[x]) if(dq!=fa) if(cnt-(!dp[dq])==0) dp1[dq]=dp1[x];

显然的是下面的 else 会和上面的 for 循环里的 if 匹配上,不符合他的思路。

我们加上大括号上后就发现本题解无法通过。

所以请求撤下。

撤下的第一篇

撤下的第二篇

同时我想问下这题的思路到底是什么

我按照第一篇题解思路里写的东西实现了,发现这个条件貌似有问题:

  • gfafax=1g_{fa_{fa_x}}=1

这个条件从思考的角度应该是充要的,但是实测却不是。

而第一篇题解他自己的代码实现是一个非常奇怪的东西,我无法理解:

if(!g[x]) {for(auto y:v[x]) if(y!=fa) g[y]=0,dfs2(y,x); return;}
if(x<=n)
{
    int pre=1; for(auto y:v[x]) if(y!=fa) g[y]&=pre,pre&=f[y];
    reverse(v[x].begin(),v[x].end()),pre=1;
    for(auto y:v[x]) if(y!=fa) g[y]&=pre,pre&=f[y];
    reverse(v[x].begin(),v[x].end());
    for(auto y:v[x]) if(y!=fa) dfs2(y,x);
    return;
}

这一段归纳起来到底是在做什么,有无老哥指点。

2024/8/23 08:17
加载中...