社区讨论

路过神犇帮帮忙…90分…气炸了…

P2899[USACO08JAN] Cell Phone Network G参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi6lrbe0
此快照首次捕获于
2025/11/20 06:57
4 个月前
此快照最后确认于
2025/11/20 06:57
4 个月前
查看原帖
是按照第一个题解的思路做的……
(o数组就是是否已经在独立集里面)
CPP
#include<cstdio>
#include<algorithm>
using namespace std;
struct B
{
    int t,ne;
}a[10010];
int n,fr[10010],o[10010],e,ans;
void add(int f,int t)
{
    a[++e].t=t;
    a[e].ne=fr[f];
    fr[f]=e;
}
void dfs(int fa,int k)
{
    int fl=0;
    for (int i=fr[k];i;i=a[i].ne)
        if (a[i].t!=fa)
        {
            dfs(k,a[i].t);
            fl=fl||o[a[i].t];
        }
    if (!o[fa]&&!fl&&!o[k])
        o[fa]=1,ans++;
}
int main()
{
    scanf("%d",&n);
    for (int i=1,x,y;i<n;i++)
        scanf("%d%d",&x,&y),add(x,y),add(y,x);
    dfs(0,1);
    printf("%d",ans);
}

回复

2 条回复,欢迎继续交流。

正在加载回复...