【題目描述】
有 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 再將差進行從小到大的排序 然後輸出前...