传统题 1000ms 256MiB

花开花落

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

花开花落

花开花落

聚成一团野火

散作漫天星河

——弹壳《花开花落》

题目背景

那是他们在机房的最后一个晚上。

灯熄了一半,没有人走。有人把最后一份代码交上去,有人趴在桌上睡着,有人盯着屏幕上那行红字,固执地改到指尖发麻。

凌晨,队长把所有人叫到楼下。

「站好吧,」他说,「最后一张合照。」

路灯下,谁也不肯将就自己的位置。谁站在谁前面,谁又该退后半步,他们像争一道题的解法一样争了很久——好像只要这一排站对了,这些日子就能多留一会儿。

「你们知道吗,」队长忽然开口,「这一排里,每一对站错的人,都算一个遗憾。」

「那就调。」

「只能一点一点地挪。」他看着远处没亮的天,「挪到遗憾刚好剩下 kk 个为止。」

「为什么是 kk 个?」

「因为剩下的那些,」他笑了笑,「我替我们收着。」

于是他们开始交换位置。一个人退开,另一个人顶上;倒计时在头顶走着,快门却迟迟没有按下。有人喊了一句什么,所有人都笑了,笑着笑着就没了声音。

那一刻他们像是又回到赛场上——时间不够,题不会做,可没有一个人肯先放下键盘。

后来天亮了。

队伍散进各自的清晨。有人去了很远的城市,有人再也没打过比赛,有人把奖牌塞进抽屉,再也没有打开。

可每当夜里抬头,队长总觉得那天的队伍还在——

聚是一团野火,散作漫天星河。

题目描述

给定一个 11 到 nn 的排列 pp,以及一个非负整数 kk。

一次操作可以交换 pp 中相邻的两个数。

请问至少需要多少次操作,才能使排列的逆序对数恰好等于 kk?

逆序对是指一对下标 i<ji < j 满足 pi>pjp_i > p_j。保证 0≤k≤n(n−1)20 \le k \le \frac{n(n-1)}{2}。

输入格式

第一行两个整数 nn 和 kk。

第二行 nn 个整数 p1,p2,…,pnp_1, p_2, \dots, p_n,保证是 11 到 nn 的一个排列,相邻两个数之间用一个空格隔开。

输出格式

一行一个整数,表示最少操作次数。

样例

5 3
5 1 2 4 3
2

数据范围

1≤n≤2×1051 \le n \le 2 \times 10^5,0≤k≤n(n−1)20 \le k \le \frac{n(n-1)}{2}。

提示:有些遗憾可以调,有些日子回不去;另外,答案记得开 long long。

2026年UIT线上测试考核

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