蓝桥杯T5
  • 板块灌水区
  • 楼主Psy_Duck
  • 当前回复33
  • 已保存回复33
  • 发布时间2022/5/30 12:57
  • 上次更新2023/10/28 00:17:28
查看原帖
蓝桥杯T5
714946
Psy_Duck楼主2022/5/30 12:57

题意:xx 轴正方向上有 nn 个点(1n1041 \le n \le 10^4),给出他们的坐标,你要选出 kk (1k1041\leq k\le 10^4)个相邻的点和一个 xx 轴上的点使这 kk 个点到这个坐标的距离和最小。求最小距离和。

输入两行,第一行是 n,kn,k

第二行是 nn 个数代表坐标,坐标1000\leq1000

样例1

3 3
1 998 999
998

显然取998作为选出的x轴上的点。最小距离为(998-1)+(999-998)

样例2

4 2
1 3 7 20
2

选择1和3作为两个相邻的2个数,再选2作为x轴上的点最小距离为(2-1)+(3-2)

样例3

4 3
1 3 7 20
6

选择相邻的1、3、7以及x轴上的3,距离为(3-1)+(3-3)+(7-3)

我目前只想到 n(nk)lognn (n - k) \log n 的算法,即每次n(n-k)次枚举然后主席树求中位数,求更优的算法

2022/5/30 12:57
加载中...