社区讨论
只过了4个点求调
P1922女仆咖啡厅桌游吧参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mlhi26b0
- 此快照首次捕获于
- 2026/02/11 11:58 上周
- 此快照最后确认于
- 2026/02/12 23:25 7 天前
CPP
#include <iostream>
#include <bits/stdc++.h>
#include <cstring>
using namespace std;
const int N=1e5+10;
int f[N],e[N],h[N],ne[N],d[N],idx;
bool st[N];
int n;
void add(int a,int b)
{
e[idx]=b;
ne[idx]=h[a];
h[a]=idx++;
}
void dfs(int u,int fa)
{
st[u]=1;
int sum=0;
int free=1;
for(int i=h[u];~i;i=ne[i])
{
int t=e[i];
if(t==fa) continue;
//cout << h[t] << endl;
if(d[t]==1)
{
free++;
//cout << free;
}
else
{
dfs(t,u);
//cout << f[t] << endl;
sum+=f[t];
}
}
sum+=free/2;
//cout << free << endl;
f[u]=sum;
}
int main()
{
memset(h,-1,sizeof h);
cin >> n;
for(int i=1;i<n;i++)
{
int u,v;
scanf("%d %d",&u,&v);
add(u,v);
add(v,u);
d[u]++;
d[v]++;
}
dfs(1,0);
cout << f[1];
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...