大戰!貪心!SHU1951 Apple Trees

2021-07-09 02:00:18 字數 969 閱讀 9034

小y在x軸上種了好多蘋果樹,第i棵蘋果樹在p[i]的位置上,樹上有a[i]個蘋果。

現在小y在座標原點,拿著乙個容量為k的籃子。

由於小y很懶,他想求出最少移動多少距離才能夠把所有樹上的蘋果摘下來並且運送到座標原點。

多組資料,第一行有乙個整數t表示資料組數。(t <= 20)

之後有t組資料,每組資料第一行為兩個整數n和k,表示蘋果樹的數量和籃子的容量。

(1 <= n <= 1000, 1 <= k <= 100000)

接著有n行,每行有兩個整數 p[i] 和 a[i] 分別表示蘋果樹的座標及蘋果的數量。

(0 <= p[i] <= 1000, 1 <= a[i] <= 1000)

對於每組資料,輸出一行整數,表示小y最少需要移動的距離。 1

3 21 3

2 13 2

12由於暑假acm集訓逃了不少(又是這個原因qaq),所以就連最基本的貪心演算法都沒有get過,不過這類的題我看到一般都有思路,所以也沒有坑死自己過,在隊友的嘴裡才知道,啊這是貪心啊!

下面引用《挑戰程式設計競賽》中對貪心法的一句介紹,方便自己查閱。

貪心法就是遵循某種規則,不斷貪心地選取當前最優策略的演算法設計。

接下來講一下這道題,這道題出自秋季學期的一次個人賽,當時沒有想法,然後這次出現在了思維實訓中,當時的想法是這麼簡單的題我秋季竟然不會做!然後信心滿滿地寫,最後一共wa了7次,哈哈哈哈哈!

我沒注意到的坑點主要是以下2點:

1.應該從最遠的地方開始拿蘋果,而不是最近的,以避免最後拿不滿籃子的情況下還要跑到最遠的地方去。

2.因為要從最遠的依次向最近的拿蘋果,所以要用結構體定義蘋果樹,然後根據位置排序。

#include#includeusing namespace std;

;

else

}cout<}

return 0;

}

貪心第二彈!SHU1974 這架飛機被蟲蟲承包了

蟲蟲上次公升級了鐵路系統後,發現很多人開始選 航出行了。所以蟲蟲想要承包一架飛機來服務大家。蟲蟲需要乙個民航訂票系統。每個使用者都有乙個自己的心理預期接受的機票 如果機票定價超過這個 這個使用者是不會買票的。蟲蟲知道每個人的接受 現在蟲蟲想讓你幫助確定票價,票價確定後,可以出票給那些願意買票的使用者...

字典 集合大戰(1)

又來了!來改錯了!字典的整體操作 小夏和小迪接到乙個調研任務,需要按省份統計班級同學的籍貫分布情況。他們決定兩人分頭統計男生和女生的籍貫分布,最後再彙總結果。已知小夏統計的女生籍貫分布是 dicgirls 小迪統計的男生籍貫分布是 dicboys 請編寫程式將兩人的調研結果合併並輸出。dicgirl...

Java專案 坦克大戰1

我們既然要做這個遊戲,首先我們必須知道這個遊戲裡面應該有什麼成員,成員都有什麼屬性。成員 1 遊戲介面的面板 關卡 難度 總成績 2 自己的英雄坦克 方向 子彈 生命值 3 敵軍坦克 方向隨機 總數量,單次數量 4 子彈 5 記錄成績以及生命值 如圖 所有的坦克都有的屬性 方向 顏色 速度 生命 所...