题目名称 1975. 奶牛排序
输入输出 cow.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2025-05-21加入
开放分组 全部用户
提交状态
分类标签
逆序对 树状数组
分享题解
通过:6, 提交:10, 通过率:60%
GravatarLikableP 100 0.156 s 2.46 MiB C++
Gravatarsyzhaoss 100 0.175 s 4.99 MiB C++
Gravatar对立猫猫对立 100 0.179 s 5.77 MiB C++
Gravatar汐汐很希希 100 0.320 s 4.75 MiB C++
Gravatarxxz 100 0.322 s 6.04 MiB C++
Gravatarxxz 100 0.332 s 6.05 MiB C++
Gravatar汐汐很希希 40 0.321 s 4.72 MiB C++
Gravatar汐汐很希希 40 12.000 s 4.30 MiB C++
Gravatar汐汐很希希 0 0.309 s 4.51 MiB C++
Gravatar汐汐很希希 0 11.999 s 4.33 MiB C++
本题关联比赛
树状数组练习
关于 奶牛排序 的近10条评论(全部评论)

1975. 奶牛排序

★★   输入文件:cow.in   输出文件:cow.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

夏洛克有$n$头奶牛,每头奶牛有一个唯一的“脾气暴躁”值$a_i$。

每天晚上奶牛们都会排队挤奶,但是脾气暴躁的奶牛更容易损坏夏洛克的挤奶设备,夏洛克希望重新安排奶牛的排成一列,以便它们排成越来越脾气暴躁。

在这个过程中,任何两头奶牛(必然相邻)都可以互换,而每次互换夏洛克都需要$x+y$的时间来交换两头脾气暴躁值为$x$和$y$的奶牛。

请你帮助夏洛克计算将奶牛排好序需要的最短时间。

【输入格式】

第一行一个整数$n(n\leq 10^5)$。

接下来$n$行每行一个整数,其中第$i$行的整数$a_i(a_i\leq 10^5)$表示第$i$头牛的脾气暴躁值。

【输出格式】

一行一个整数,表示奶牛排好序需要的最短时间。

【样例输入】

3
2
3
1

【样例输出】

7

【样例说明】

开始时奶牛的顺序为:$2$ $3$ $1$。

第一次可以交换$3$和$1$,需要花费$3+1=4$的时间,奶牛顺序为:$2$ $1$ $3$。

第二次可以交换$2$和$1$,需要花费$2+1=3$的时间,奶牛顺序为:$1$ $2$ $3$。