象棋比賽(排序)

2021-08-08 13:23:40 字數 940 閱讀 6724

【題目描述】

有 n 個人要參加西洋棋比賽,該比賽要進行 k 場對弈。

每個人最多參加兩場對弈,最少參加零場對弈。

每個人都有乙個與其他人不相同的等級(用乙個正整數來表示)。

在對弈中,等級高的人必須用黑色的棋子,等級低的人必須用白色的棋子。每人最多只能用一次黑色的棋子和一次白色的棋子。

為了增加比賽的可觀度,觀眾希望 k 場對弈中雙方的等級差的總和最小。

比如有 7 個選手,他們的等級分別是 30;17;26;41;19;38;18,要進行 3 場比賽。最好的安排是 plays 2 vs plays 7,plays 7 vs plays 5,plays 6 vs plays 4,此時等級差的總和等於(18-17)+(19-18)+(41-38)=5 達到最小。

【輸入格式】

第一行兩個正整數 n,k;接下來有 n 行,第 i 行表示第 i+1 個人等級。

【輸出格式】輸出僅一行為最小的等級差的總和。

【樣例輸入】

7 3【樣例輸出】

【資料規模】

在 90%的資料中,1<=n<=3000;

在 100%的資料中,1<=n<=100000;

保證所有輸入資料中等級的值小於 109,1<=k<=n-1。

分析:使用兩次排序

象棋比賽問題(排序 C )

象棋比賽chess 問題描述 有n個人要參加西洋棋比賽,該比賽要進行k場對弈。每個人最多參加兩場對弈,最少參加零場對弈。每個人都有乙個與他人都不相同的等級 用乙個正整數來表示 在對弈中,等級高的人必須用黑色的棋子,等級低的人必須用白色的棋子。每個人最多只能用一次黑色的棋子和一次白色的棋子。為了增加比...

洛谷 象棋比賽(P1626,排序)

有n個人要參加西洋棋比賽,該比賽要進行k場對弈。每個人最多參加兩場對弈,最少參加零場對弈。每個人都有乙個與其他人不相同的等級 用乙個正整數來表示 在對弈中,等級高的人必須用黑色的棋子,等級低的人必須用白色的棋子。每個人最多只能用一次黑色的棋子和一次白色的棋子。為增加比賽的可觀度,觀眾希望k場對弈中雙...

題解 P1626 象棋比賽

這道題題解有點少,還沒有c 的 c應該也可以看懂 所以我來發布一篇 核心思路 現將各等級選手進行從小到大的排列,然後假設每人都會進行比賽,算出每相鄰兩人的差 這裡不用再算不相鄰的差了,因為要使和最小,離得最近的兩數才滿足。比如 1 2 3,2 1 1,3 1 2 再將差進行從小到大的排序 然後輸出前...