本题可以使用排序与分组枚举。
当阈值 T 足够小时,所有元素都满足 hi≥T,因此所有元素都取高位值 Hi。
先计算初始总和:
在一套批量参数配置系统中,每个配置项都会根据统一的切换界限,在两种预设数值之间选择其一。现在希望通过调整这个界限,使所有配置项的最终汇总结果尽可能接近期望值。
给定 n 个配置项,第 i 个配置项包含三个整数:触发值 pi、前置值 Ai 和后置值 Bi。
你可以任意选择一个整数界限 X。确定 X 后,第 i 个配置项的最终数值 wi 按照下面的规则确定:
所有配置项的汇总值定义为
W(X)=w1+w2+⋯+wn.给定目标值 G,你需要在所有整数 X 中,找到使
∣W(X)−G∣尽可能小的方案,并输出这个最小值。
第一行输入一个整数 n (1≤n≤250000),表示配置项的数量。
第二行输入一个整数 G (−9×1017≤G≤9×1017),表示目标汇总值。
接下来 n 行,第 i 行输入三个整数
pi,Ai,Bi (−800000000≤pi,Ai,Bi≤800000000),分别表示第 i 个配置项的触发值、前置值和后置值。
输出一个非负整数,表示所有整数界限 X 中,∣W(X)−G∣ 能够取得的最小值。
输入
4
20
2 3 10
2 1 7
5 4 9
8 -2 6
输出
1
说明
不同的整数界限只会在越过某个触发值时改变配置项的取值。
当 X≤2 时,四个配置项均取后置值,此时
W(X)=10+7+9+6=32.当 3≤X≤5 时,前两个配置项改取前置值,因此
W(X)=3+1+9+6=19.当 6≤X≤8 时,前三个配置项取前置值,此时
W(X)=3+1+4+6=14.当 X≥9 时,所有配置项均取前置值,此时
W(X)=3+1+4−2=6.它们与目标值 20 的绝对差分别为 12,1,6,14,因此答案为 1。
输入
3
-4
-1 -5 2
3 1 -4
6 0 -2
输出
0
说明
选择任意满足 X≤−1 的整数界限时,三个配置项都会取后置值,因此
W(X)=2+(−4)+(−2)=−4.汇总值恰好等于目标值 G=−4,所以最小绝对差为 0。
输入
1
700000000000
4 -800000000 800000000
输出
699200000000
说明
只有一个配置项。
当 X≤4 时,它取后置值 800000000,此时绝对差为
∣800000000−700000000000∣=699200000000.当 X≥5 时,它取前置值 −800000000,此时绝对差为
∣−800000000−700000000000∣=700800000000.因此最小值为 699200000000。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册