[蓝桥杯][2019年第十届真题]扫地机器人(二分+贪心)
題目描述
小明公司的辦公區有一條長長的走廊,由 N 個方格區域組成,如下圖所 示。
走廊內部署了 K 臺掃地機器人,其中第 i 臺在第 Ai 個方格區域中。
已知掃地機器人每分鐘可以移動到左右相鄰的方格中,并將該區域清掃干凈
請你編寫一個程序,計算每臺機器人的清掃路線,使得
它們最終都返回出發方格,
每個方格區域都至少被清掃一遍,
從機器人開始行動到最后一臺機器人歸位花費的時間最少。
注意多臺機器人可以同時清掃同一方塊區域,它們不會互相影響
輸出最少花費的時間。
在上圖所示的例子中,最少花費時間是 6。第一臺路線:2-1-2-3-4-3-2,清 掃了 1、2、3、4 號區域。第二臺路線 5-6-7-6-5,清掃了 5、6、7。第三臺路線 10-9-8-9-10,清掃了 8、9 和 10。
輸入
第一行包含兩個整數 N 和 K。
接下來 K 行,每行一個整數 Ai。
輸出
輸出一個整數表示答案
樣例輸入
10 3
5
2
10
樣例輸出
6
思路:挺明顯的一個二分題目。我們二分每個機器人的掃地范圍,根據數學知識我們可以知道,當每個機器人清掃的面積相差不大時,耗時最少。假設二分的掃地范圍是x,對于每一個掃地機器人,我們盡可能讓它掃地的右邊界大一些,也就是掃過的格子,沒有必要絕對不掃。最后看掃地的右邊界是否大于等于格子的邊界,如果是的話,就說明符合條件,否則就不符合條件。
代碼如下:
努力加油a啊
總結
以上是生活随笔為你收集整理的[蓝桥杯][2019年第十届真题]扫地机器人(二分+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称 Kotick 依然将会是动视暴雪
- 下一篇: 看机器学习如何预测债券收益率