收益是价值和加上类型数的平方,所以既要贵的花,也可能要更多类型。类型奖励不是线性的,需要枚举最终用了多少种。
int 累加(价值和可到 1014,种类平方可到 1010)。花店里摆着 n 朵花。第 i 朵花有一个类型 ti 和一个价值 vi。
你必须恰好从中选出 k 朵花做成一束。设这 k 朵花的价值之和为 S,其中出现过的不同的类型个数为 C,则这束花的收益定义为
S+C×C
请计算能得到的最大收益。
第一行两个正整数 n 和 k(1≤k≤n≤105),表示花的数量和必须选中的朵数。
第二行 n 个整数 t1,t2,…,tn(1≤ti≤109),表示每朵花的类型。
第三行 n 个整数 v1,v2,…,vn(1≤vi≤109),表示每朵花的价值。
输出一个整数,表示最大收益。
输入
3 2
1 1 2
5 3 4
输出
13
说明
最大为 13。
输入
3 2
1 1 2
100 99 1
输出
200
说明
两朵类型 1 的价值和为 199,类型数 1,收益 200。若改拿类型 2 那朵价值 1 的花,类型数变成 2,收益只有 105。种类更多不一定更优。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册