C. 承重分组

    传统题 1000ms 256MiB

承重分组

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

承重分组

题目描述

给定 NN 个个体,第 ii 个个体有两个属性:重量 WiW_i 与力量 PiP_i

你需要将每个个体分到两类之一:

支撑组:其力量会被计入总支撑力;

负载组:其重量会被计入总负载。

分组后必须满足约束: 支撑组的力量总和必须大于或等于负载组的体重总和

请你在满足约束的前提下,最大化负载组的人数 B|B|,并输出其最大可能值。

你需要处理 TT 组测试数据,分别求解。

输入格式

第一行输入一个整数 TT,表示测试数据组数。

对于每组测试数据:

第一行输入一个整数 NN

接下来 NN 行,每行输入两个整数 Wi,PiW_i, P_i,表示第 ii 个个体的重量与力量。

输出格式

输出 TT 行,第 ii 行输出第 ii 组测试数据的答案。

输入输出样例 #1

输入 #1

3
3
3 1
4 1
5 9
5
1000000000 1
1000000000 1
1000000000 1
1000000000 1
1000000000 1
10
133180711 458704923
531424946 225863856
141986070 637075158
500770732 289806469
502866767 408857335
559714289 569084545
287444582 992432993
559747907 753133304
432846188 949871298
727072164 756020367

输出 #1

2
0
6

说明/提示

1T1051\le T\le 10^5

1N3×1051\le N\le 3\times 10^5

1Wi,Pi1091\le W_i, P_i\le 10^9

单个输入文件中所有测试用例的 NN 之和不超过 3×1053\times 10^5

样例解释:

  1. 第 1 组N=3N=3,个体为 (Wi,Pi)(W_i,P_i)

    • (3,1)(3,1)(4,1)(4,1)(5,9)(5,9)

    取支撑组 A={3}A=\{3\},负载组 B={1,2}B=\{1,2\},则:

    iAPi=9, \sum_{i\in A}P_i = 9, iBWi=3+4=7,\qquad \sum_{i\in B}W_i = 3+4=7,

    满足 979\ge 7,且 B=2|B|=2
    由于不可能让 B=3|B|=3(否则左侧为 00,右侧为总重量),因此答案为 22

  2. 第 2 组N=5N=5,每个个体均为 (109,1)(10^9,1)

    若将任意一个个体放入负载组,则右侧至少为 10910^9,而左侧最多为 44(其余 4 个在支撑组时的总力量),必然不满足约束。
    因此只能令 B=B=\varnothing,答案为 00

【睿爸信奥】入门组算法周赛(20260215)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-2-15 0:00
结束于
2026-2-20 20:00
持续时间
3.5 小时
主持人
参赛人数
18