恋爱入门教学题解

恋爱入门教学

题目背景

HF 学会了说唱,夺得了中国第一男高的称号,迷倒了万千迷妹收获了大笔的金钱。

广撒网广交友,交到了许多卡哇伊的 npy,可是麻烦随之而来。

题目描述

每一个 npy 对 HF 都有一个好感度 Favorbilityi(下文简记为 Fi)。而 HF 秉持着公平的原则,对于每一个 npy 的好感度 f 是一样的。于是,好感的不对等会造成一定的麻烦。

每一个 npy 都有一个麻烦率 Troublesomei(下文简记为 Ti),如果是纠缠,那么 Ti 为正,如果是冷漠,则 Ti 为负。或许可能是真爱,有的 npy 的 Ti0

但是与每一个 npy 相处会有一个基础的麻烦度 Bi,由于也可能是帮助,所以 Bi 可能小于零。

HF 为了不让自己爆炸,所以想要最小化 HF 的麻烦度。

由于朋友是一个一个交的,所以他每交到一个 npy 就需要调整自己的 f 以减少麻烦。

形式化来说,就是对于 k=1,2,n,最小化:

i=1k|Ti(Fif)+Bi|

输入格式

第一行一个数 n 表示 npy 的总个数。

接下来 n 行,每行三个整数 Ti,Fi,Bi

含义见题目描述

输出格式

一行 n 个数,误差在 104 以内则视为正确。

数据规模

对于 100% 的数据 n5e5,|Ti|,|Fi|,|Bi|1e4

特殊性质:

  • A:保证 Ti=1
测试点编号 n 特殊性质
13 10
4 10 A
59 3000
10 3000 A
1114 100000
15 100000 A
1620 500000

题解

T4 love

整理式子:

i=1k|aix+bi|


Sol 1

首先考虑绝对值是个凸函数的性质:凸函数 + 凸函数 = 凸函数。可以发现,所求函数满足两段单调。

所以我们可以三分 f 然后 O(n) 算出最终答案。

复杂度 O(n2logv) 期望得分 20


三分瓶颈在于求出最终答案,考虑如何优化。

我们把绝对值拆开分段考虑。

x<bi/ai 时,与 xbi/ai 时贡献不一样,考虑将函数按照 bi/ai 排序,将函数相加(对 aibi 做前后缀和,利用数据结构维护)

所以可以二分断点,以此求出答案。

注意 ai=0 的情况。

复杂度 O(nlognlogv),期望得分 75


sol 2

先考虑特殊性质。

不难发现,可以转化为最小化数轴上一个点到其他点的最小距离。

这应该给了很多提示。所以这一部分可以通过 heap 水过。

实测,其实利用堆可以过大部分数据,只是这复杂度……O()

期望得分:


利用绝对值,强制使得 ai0,同时也改变 bi 的符号,可以得到类下的式子:

i=1kai|xbiai|

于是相当于在数轴上 biai 的位置放 ai 个点。求 x 到这些点的最小距离。

而如果要最小化距离,那么显然是在中位数的位置。

所以考虑使用平衡树维护中位数,以及 bi 前缀和,求解距离即可。

同时,也可以考虑离散化,在线段树或者树状数组上二分可以做到 O(nlogn)

期望得分 100

posted @   jeefy  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示