AT_oupc2023_day1_p.Score for Cutting Graph
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
对于一个无向图 G′,每个顶点上写有一个正整数,定义 G′ 的分数如下:
- 对于 G′ 的每个连通分量,计算该连通分量中所有顶点上正整数的乘积,并将这些乘积累加起来,得到总分数。
给定一个只包含正整数的长度为 N 的序列 A=(A1,A2,…,AN) 和一个正整数 M。现在需要构造一个编号分别为 1 到 N 的 N 个顶点、N−1 条边的简单且连通的无向图 G,使得满足下列条件:
- 对于 G 的每个顶点 i(1≤i≤N),点 i 上写有 Ai。
- 从 G 删除至多一条边后得到的所有 N 个图,它们的分数总和不超过 M。
有 T 个测试用例,请分别判断每个测试用例是否存在符合条件的 G。如果存在,请给出构造方案。
输入格式
输入按如下格式从标准输入读入:
T case1 ⋮ caseT
每个测试用例格式如下:
N M A1 A2 … AN
输出格式
对于第 k 个测试用例,输出该用例的答案。如果无法使分数总和不超过 M,输出 No。否则,第一行输出 Yes,后面 N−1 行输出 G 的边的构造方式,格式如下:
s1 t1
s2 t2
⋮
sN−1 tN−1
其中 sj,tj 表示 G 的第 j 条边(连接顶点 sj 与 tj)。
如果存在多种方案,输出任意一种均可。
输入输出样例
输入#1
3 4 60 1 2 3 4 4 24 1 2 3 4 7 1000000000000000000 1 2 3 4 5 6 7
输出#1
Yes 1 2 1 3 1 4 No Yes 1 3 3 5 5 4 2 5 7 6 1 6
输入#2
3 10 20 1 1 1 1 1 1 1 1 1 1 4 3000 20 24 1 6 10 3000000 20 2 4 1 6 20 2 4 1 6
输出#2
Yes 3 1 4 7 5 7 10 3 2 9 8 9 3 8 6 9 7 1 No Yes 10 9 4 6 5 4 4 9 9 3 9 1 8 4 1 2 7 9
说明/提示
子任务
- (1 分)N≤7
- (99 分)无额外约束
样例解释 1
第 1 个测试用例及其输出结果如下所示,例如:
- 不删除任何边时,分数为 (1×2×3×4)=24。
- 删除第 1 条边时,分数为 (2)+(1×3×4)=14。
- 删除第 2 条边时,分数为 (3)+(1×2×4)=11。
- 删除第 3 条边时,分数为 (4)+(1×2×3)=10。
分数总和为 59。也存在分数总和不超过 60 的其它 G,输出任意一种即可。
对于第 2 个测试用例,无法使分数总和不超过 24,因此输出 No。
此样例满足子任务 1 的约束。
样例解释 2
此样例不满足子任务 1 的约束。
数据范围
- 1≤T≤5
- 2≤N≤200,000
- 1≤M≤1018
- 1≤Ai≤1018
- 所有测试用例中 N 的总和不超过 200,000
- 输入均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?