cut(排序求和)

2021-09-10 01:20:54 字數 1365 閱讀 3083

我是題目的傳送門!!

題目描述

給你乙個長度為n的序列,你每次可以將乙個序列分割成兩個連續的的子串行,

分割的代價為原序列的總和。

現在允許你在初始時將序列重新排列一次。

問分割成n個長度為1的序列的最大總代價是多少?

輸入描述:

第一行乙個數n表示原序列的長度;

接下來一行n個數a_i表示原序列的第i個數。

2<=n<=100000

0<=a_i<=10000

輸出描述:

一行乙個整數表示答案。

示例1輸入

43 2 4 1

輸出

26說明

[3,2,4,1]重排->[1,2,3,4]->[1],[2,3,4]->[1],[2],[3,4]->[1],[2],[3],[4]。

示例2輸入

41 1 1 1

輸出

9解題:排序求和

python:

n=

int(

input()

)l=[int

(x)for x in

input()

.split()]

l.sort()a=

len(l)

sum=

0for i in

range(0

,a):

sum+=l[i]

*(i+1)

sum=

sum-l[-1

]print

(sum

)

顯然耗時巨大。

c

#include

intmain()

}}for(

int h=

0;h) sum+

=a[h]

*(h+1)

; sum=sum-a[n-1]

;printf

("%d"

,sum)

;return0;

}

兩層迴圈,耗時巨大

c++

#include

#include

using namespace std;

intmain()

sort

(a,a+n)

;for

(int i=

0;i) cout<

}

利用c++的sort函式,解決了兩層迴圈的尷尬。

over。

cut命令學習

一 定義 正如其名,cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。2 剪下依據 cut命令主要是接受三個定位方法 第一,位元組 bytes 用選項 b 第二,字元 characters 用選項 c 第三,域 fields 用選...

cut命令學習

一 定義 正如其名,cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。2 剪下依據 cut命令主要是接受三個定位方法 第一,位元組 bytes 用選項 b 第二,字元 characters 用選項 c 第三,域 fields 用選...

cut命令詳解

正如其名,cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut是以每一行為乙個處理物件的,這種機制和sed是一樣的。剪下依據 cut命令主要是接受三個定位方法 第一,位元組 bytes 用選項 b 第二,字元 characters 用選項 c 第三,域 fields 用選項 f 例 一...