排序的代價

2022-02-26 13:42:37 字數 1061 閱讀 6207

【題目描述】

有一列數,要對其進行公升序排序。排序只能通過交換來實現。每次交換,可以選擇這列數中的任意兩個,交換他們的位置,並且交換的代價為兩個數的和。排序的總代價是排序過程中所有交換代價之和。現要求計算,對於給出的數列,要將其排成公升序所需的最小代價。

【輸入描述】

第一行輸入1個數n,表示這列數共有n(n <= 1000)個數組成;

第二行輸入n個互不相同的整數(都是小於1000的正整數),表示這列數。

輸入可能包含多組測試資料(少於50組),對於每個輸入資料均需要給出對應的輸出。

【輸出描述】

對於每組輸入資料,輸出最小代價。

輸出格式為「case t: min」,其中t為資料的編號(從1開始編號),min為這個資料的最小代價。

【樣例輸入】

33 2 1

48 1 2 4

【樣例輸出】

case 1: 4

case 2: 17

源**:

#include

#include

#include

using

namespace

std;

intn,ans,min,number;

bool f[1001

];struct

node

i[1001

];bool

rule(node t1,node t2)

void clear() //

初始化。

intmain()

sort(i+1,i+1+n,rule);

for (int a=1;a<=n;a++)

if (!f[a])

ans+=sum+min((num-2)*t,(num+1)*min+t);

}if (!ans)

break

; printf(

"case %d: %d\n

",++number,ans);

}return0;

}/*置換群,然而太高深了看不懂。

題解部落格:

*/

2845 排序的代價

時間限制 1 s 空間限制 32000 kb 題目等級 gold 題解有一列數,要對其進行排序 公升序 排序只能通過交換來實現。每次交換,可以選擇這列數中的任意二個,交換他們的位置,並且交換的代價為二個數的和。排序的總代價是排序過程中所有交換代價之和。先要求計算,對於任意給出的數列,要將其排成公升序...

偷懶的代價

在正式測試之前,給開發制定各種模板和規範的時候,曾經想過給開發制定乙份統計規範,但最終因為那段時間事情太多,偷懶少寫了乙份統計規範文件,抱著僥倖的心理以為這本身應該是開發的設計工作,他們在實現功能之前應該會自己先編寫乙份規範或在頭腦裡形成乙個清晰的思路。可是,在iagw m部分的 提交統計部分的測試...

成名的代價

1 成名的代價 1 一旦成名,你立即不肯能獲得真實的生活 為什麼是明星們的私生活,那要是秘密才好的 必須要和公眾分開,否則一旦你的真相發生暴露,對不起,所有對你的夢在那一刻就碎了。而在網際網路時代,保守秘密和公眾隔開距離又是那麼的困難。這就是成名的第乙個代價。2 你成名之後,你根本不知道你的名觸動了...