怎么会是呢?
写了特殊性质 A,考场代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10,M=21;
int n,id,a[N],b[N],c[N],to[N<<1],ne[N<<1],head[N];
void add(int x,int y) {to[++id]=y,ne[id]=head[x],head[x]=id;}
namespace solveA
{
bool check()
{
for(int i=1;i<=n;i++)
if(c[i]) return 0;
return 1;
}
void solve()
{
int ans=n;
for(int i=1;i<=n;i++) ans=max(ans,(a[i]-1)/max(b[i],1ll)+1);
printf("%lld",ans);
}
};
signed main()
{
freopen("tree.in","r",stdin),freopen("tree.out","w",stdout);
scanf("%lld",&n);
for(int i=1;i<=n;i++) scanf("%lld%lld%lld",&a[i],&b[i],&c[i]);
for(int i=1,x,y;i<n;i++) scanf("%lld%lld",&x,&y),add(x,y),add(y,x);
if(solveA::check()) solveA::solve();
else printf("%lld",n);
}