题目名称 | 1975. 奶牛排序 |
---|---|
输入输出 | cow.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 |
|
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:1, 通过率:100% | ||||
|
100 | 0.175 s | 4.99 MiB | C++ |
关于 奶牛排序 的近10条评论(全部评论) |
---|
夏洛克有$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$。