| 比赛场次 | 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 简单对比 |
| 用户 | 结果 | 时间 | 内存 | 得分 |
|---|---|---|---|---|
|
|
AAWTTTTTTT | 7.941 s | 52.54 MiB | 20 |
|
|
WWWWWWAWWW | 0.945 s | 51.43 MiB | 10 |
这不是一道交互题
这里不需要你比较空集的大小
这里不需要你自己配置环境
选手不需要也不应该不实现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$
保证初始时合法