#P14954. [2026年重庆省队集训]Weight

    ID: 14170 传统题 2000ms 1024MiB 尝试: 2 已通过: 1 难度: 9 上传者: 标签>CF2800网络流计算几何分治数学二分凸包

[2026年重庆省队集训]Weight

【题目描述】

给定一个二分图。左部包含 nn 个结点,编号从 11nn,右部也包含 nn 个结点,编号从 11nn。共有 mm 条边,每条边连接左部的一个结点和右部的一个结点。

你将被询问 qq 个独立的查询。在每个查询中,给定三个整数:(a,b,k)(a, b, k)

对于一个固定的查询 (a,b,k)(a, b, k),考虑在给定图上的以下过程。初始时,每个结点(包括左部和右部)的权重均为 00。你可以执行以下操作任意次:

  • 选择左部结点的一个任意子集 SS(可能为空),并选择一个正实数 p>0p > 0
  • N(S)N(S) 为与 SS 中至少一个结点相邻的右部结点的集合。
  • SS 中每个结点的权重增加 apa \cdot p
  • N(S)N(S) 中每个结点的权重增加 bpb \cdot p

p1,p2,,pp_1, p_2, \dots, p_{\ell} 为你在所有操作中使用的 pp 的值。这些值必须满足:

i=1pi1.\sum_{i=1}^{\ell} p_i \le 1.

你的目标是选择这些操作(子集 SS 和值 pp),使得所有结点(包括左部和右部)的权重总和最多为 kk。在此约束下,你应该最大化左部所有结点的权重总和。

对于每个查询 (a,b,k)(a, b, k),每次都从所有结点权重为 00 开始,计算可以获得的左部结点权重总和的最大可能值。

【输入格式】

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,tc, t,分别表示子任务编号与测试数据组数。

接下来依次输入每组测试数据,对于每组测试数据:

  • 第一行包含三个正整数 n,m,qn, m, q
  • 接下来 mm 行每行两个整数 u,vu, v,表示存在一条边,连接左部的第 uu 个点与右部的第 vv 个点。
  • 接下来 qq 行每行三个整数 a,b,ka, b, k,表示一个查询。

【输出格式】

对于每组测试数据的每个查询,输出一行一个实数表示左部点权重和的最大值。假设你的答案是 aa,评测系统答案为 bb,你的答案正确当且仅当 abmax(1,b)106\frac{|a - b|}{\max(1, |b|)} \le 10^{-6}

【样例 #0】

【输入】

0 2
5 8 3
1 2
1 3
2 4
2 5
3 1
3 3
4 2
5 4
1 3 5
2 1 2
5 2 3
2 3 3
1 2
1 1
2 1
1 0 2
0 2 2
3 1 4

【输出】

1.250000000000000
1.333333333333333
2.142857142857144
2.000000000000000
0.000000000000000
3.000000000000000

【数据范围】

n,m,q\sum n, \sum m, \sum q 表示一组测试点的所有数据中所有 n,m,qn, m, q 之和。

对于所有测试数据,保证:

  • 1t10001 \le t \le 1000
  • 1n2000,n20001 \le n \le 2000, \sum n \le 2000
  • 1m104,m1041 \le m \le 10^4, \sum m \le 10^4
  • 1q2105,q21051 \le q \le 2 \cdot 10^5, \sum q \le 2 \cdot 10^5
  • 1u,vn1 \le u, v \le n
  • 0a,b1060 \le a, b \le 10^6
  • 0k1090 \le k \le 10^9
  • 图中不存在重边。
子任务编号 n\sum n \le q\sum q \le 特殊性质 分值
1 55 1010 88
2 20002000 21052 \cdot 10^5 A 66
3 BC 55
4 B 1111
5 100100 10001000 C 88
6 20002000 21052 \cdot 10^5 1111
7 100100 11 D 1414
8 500500 10001000 1717
9 20002000 21052 \cdot 10^5 2020

特殊性质 A:每次询问的 kn(a+b)k \ge n \cdot (a+b)
特殊性质 B:每次询问的 k=1k = 1
特殊性质 C:一个右部点最多与一个左部点直接连接。
特殊性质 D:给出的二分图满足性质:存在最多 55 个集合 SS,使得只需对这些集合的部分操作,就能得到任意询问的最优解。注意这个限制针对的是二分图而非询问。