ZROI B班测试 8.12

7 篇文章 0 订阅
4 篇文章 0 订阅

T1

快乐链覆盖

题目描述

\qquad 给定一棵 n n n个点的树,你需要找至多 k k k条互不相交的路径,使得它们的长度之和最大
\qquad 定义两条路径是相交的:当且仅当存在至少一个点,使得这个点在两条路径中都出现
\qquad 定义一条路径的长度为该路径经过的点的数量
\qquad 这个题非常简单,非常传统,但为了让它变成一道能一个顶俩的题,出题人决定让你输出任意一组方案。

输入格式

\qquad 第一行一个正整数 T T T表示数据组数
\qquad 接下来,对于每组数据:第一行两个整数 n , k n,k n,k
\qquad 接下来 n − 1 n−1 n1行,每行两个整数 a , b a,b a,b描述一条树边

输出格式

\qquad 对于每组数据,第一行输出一个整数表示最大的长度之和
\qquad 之后你要输出任意一组长度之和最大的方案,第一行一个正整数 P P P表示你的方案由几条路径构成,接下来 P P P行每行两个整数描述一条路径
\qquad 当然,如果你只能求出答案,不能求出任意一组方案的话,本题也会给你一些部分分,具体看数据范围中的描述
\qquad 但是请注意:你必须保证你的输出的格式是正确的,首先你输出的 P P P必须不超过 k k k且是正整数,且无论你的方案正不正确,后面都要描述 P P P条路径,例如你输出 P = 2 P=2 P=2但是只输出了一条路径的话,后面的其他组的输出可能就会被读入作为第二条路径,这会导致你得不到该有的分数

数据范围

\qquad 对于每个测试点,如果你只能求出最大的长度之和,则得到该测试点一半的分数
\qquad 对于 30 30% 30的数据,有 1 ≤ n ≤ 10 1≤n≤10 1n10
\qquad 对于 60 60% 60的数据,有 1 ≤ n ≤ 100 1≤n≤100 1n100,保证最多只有 5 5 5组数据满足 n > 20 n>20 n>20
\qquad 对于 100 100% 100的数据,有 1 ≤ k ≤ n ≤ 10000 1≤k≤n≤10000 1kn10000,且 1 ≤ k ≤ 500 , 1 ≤ T ≤ 50 1≤k≤500,1≤T≤50 1k500,1T50,保证最多只有三组数据满足 n > 100 n>100 n>100

题目信息

\qquad 题目类型:传统型
\qquad 输入文件:标准输入
\qquad 输出文件:标准输出
\qquad 时间限制: 2 s 2s 2s
\qquad 空间限制: 512 M B 512MB 512MB

初始思路

\qquad 看完这题,我只想到了直径,求出树的直径,把直径标记一遍,这是第一条,然后剩下 k − 1 k-1 k1条就是最大的几个分支(感觉又在贪心了
\qquad 然后,我听到了“点分治”,于是,我懵了,再然后,我果断放弃,看向 T 2 T2 T2,因为本能地对线段树十分亲切。

题解

\qquad 急什么,还没有呢!

T2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值