第十屆藍橋杯 掃地機械人

2021-10-21 19:28:32 字數 1367 閱讀 5468

問題描述

小明公司的辦公區有一條長長的走廊,由 n 個方格區域組成,如下圖所示。

走廊內部署了 k 臺掃地機械人,其中第 i 臺在第 ai 個方格區域中。

已知掃地機械人每分鐘可以移動到左右相鄰的方格中,並將該區域清掃乾淨。

請你編寫乙個程式,計算每台機械人的清掃路線,使得

它們最終都返回出發方格,

每個方格區域都至少被清掃一遍,

從機械人開始行動到最後一台機械人歸位花費的時間最少。

注意多台機械人可以同時清掃同一方塊區域,它們不會互相影響。

輸出最少花費的時間。

在上圖所示的例子中,最少花費時間是 6。

輸入格式

第一行包含兩個整數 n 和 k。

接下來 k 行,每行乙個整數 ai 。

輸出格式

輸出乙個整數表示答案。

樣例輸入

10 352

10樣例輸出

6資料範圍

對於 30% 的評測用例,1≤k

101 ≤ k < n ≤ 101≤k

10對於 60% 的評測用例,1≤k

1000

1 ≤ k < n ≤ 10001≤k

1000

對於所有評測用例,1≤k

100000,1

≤ai≤

n1 ≤ k < n ≤ 100000,1 ≤ ai ≤ n1≤k

1000

00,1

≤ai≤

n題解

二分:

#include
#include

using

namespace std;

const

int n =

100010

;int n, k;

int p[n]

;bool

check

(int x)

}return r >= n;

// 判斷是否能掃完整個區域

}int

main()

cout <<

2* l -

2<< endl;

// 花費時間 = 2 × (掃地範圍 - 1)

return0;

}藍橋杯c/c++組省賽歷年題

掃地機械人(第十屆藍橋杯研究生組)

如圖,在一塊長為n的方格地板上,放置k個掃地機械人 圖中黑點 每個機械人都可以左右移動,且互不干擾,掃完地後又都回到原位置,為公平起見,每個機械人的工作量盡可能相同,求移動步數最多的機械人移動的步數。題目大概是這個意思,歡迎來更正 輸入格式 第一行輸入兩個整數 n k 第二行輸入k個整數,表示掃地機...

藍橋杯 掃地機械人

小明公司的辦公區有一條長長的走廊,由 nn 個方格區域組成,如下圖所示。走廊內部署了 kk 臺掃地機械人,其中第 ii 臺在第 a ia i個方格區域中。已知掃地機械人每分鐘可以移動到左右相鄰的方格中,並將該區域清掃乾淨。請你編寫乙個程式,計算每台機械人的清掃路線,使得它們最終都返回出發方格,每個方...

掃地機械人黑色耐髒嗎 如何選購掃地機械人?

我家全部打掃一次,僅僅只需要50分鐘左右,也就是說,這個掃地機械人充滿電可以將我家打掃四遍。deebot t5有乙個斷點續掃功能,就算是在工作過程中因為電量過低而不得不返回充電樁充電時,在充滿電後又會開始從之前的斷點區域開始繼續打掃,這樣的好處是不會出現遺漏或者重複清掃,從而大大提高了清掃效率。這台...