比赛场次 743
比赛名称 ry分享赛
比赛状态 已结束比赛成绩
开始时间 2026-03-19 18:30:00
结束时间 2026-03-19 21:00:00
开放分组 全部用户
组织者 HXF
注释介绍
题目名称 砍树
输入输出 cuttree.in/out
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar终焉折枝 AAWTTTTTTT 7.941 s 52.54 MiB 20
Gravatar郑霁桓 WWWWWWAWWW 0.945 s 51.43 MiB 10

2. 砍树

★★★   输入文件:cuttree.in   输出文件:cuttree.out  
时间限制:1 s   内存限制:512 MiB

【题目背景】

这不是一道交互题

这里不需要你比较空集的大小

这里不需要你自己配置环境

选手不需要也不应该不实现main函数

【题目描述】

你面前有一棵树

这棵树有$n-1$个节点,编号从$0$到$n-1$,由$n-1$根树枝连接

对于点$i$,其有$son_i$个儿子,同时有$p_i$的权值

对于所有点,还有$m$的最大承重量

本题中,一个点$i$的重量计算方式为$w_i=son_i+p_i$

砍掉点$i$的定义是,$i$节点上的权值加到它的父节点的权值上,它的儿子节点连到$i$的父节点上,这个点被删除

你想要知道,最多可以砍掉多少个节点

大样例

【输入格式】

第一行输入两个正整数,$n$和$m$分别表示节点个数和最大载重

第二行$n$个整数$p_i$,表示第$i$个节点上的权值

接下来$n$行,每行第一个数$son_i$表示这个节点的儿子个数,接下来$son_i$个整数表示这个节点儿子的编号

【输出格式】

一行一个整数,表示最多能删除多少节点

【样例输入】

10 4
0 2 2 2 4 1 0 4 1 1
3 6 2 3
1 9
1 8
1 1
0
0
2 7 4
0
1 5
0

【样例输出】

4

【数据规模与约定】

对于$30$%的数据,$n≤5×10^3,m≤100,p_i≤100$

对于$70$%的数据,$n≤2×10^5,m≤2×10^3,p_i≤10^3$

对于$100$%的数据,$n≤2×10^6,m≤10^5,p_i≤10^3$

保证初始时合法