很明顯的貪心
就是讓乙個柵欄盡可能多的放牛
按左端點排序,即每頭牛開始吃草的時間
維護最後一頭牛的吃草結束的時間
如果當前的牛可以跟他拼柵欄,那就拼,否則新開乙個柵欄
詳細看**注釋
#include
#define a 50010
#define pi pair
#define fi first
#define se second
using
namespace std;
int n, id[a]
; pairint> c[a]
;priority_queue
, greater
> q;
intmain
(int argc,
char
const
*ar**)
;//把這個牛的資訊放進去,
id[c[i]
.se]
= fr.se; q.
push
(fr)
;//更新這頭牛所在的柵欄
}else
cout << q.
size()
<< endl;
for(
int i =
1; i <= n; i++
)printf
("%d\n"
, id[i]+1
);return0;
}
題解 AcWing 111 畜欄預定
有n頭牛在畜欄中吃草。每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄。給定n頭牛和每頭牛開始吃草的時間a以及結束吃草的時間b,每頭牛在 a,b 這一時間段內都會一直吃草。當兩頭牛的吃草區間存在交集時 包括端點 這兩頭牛不能被安排在同乙個畜欄吃草。求需要的最小畜欄數目和每頭牛對應的畜...
acwing111 畜欄預定 排序,貪心,模擬
有n頭牛在畜欄中吃草。每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄。給定n頭牛和每頭牛開始吃草的時間a以及結束吃草的時間b,每頭牛在 a,b 這一時間段內都會一直吃草。當兩頭牛的吃草區間存在交集時 包括端點 這兩頭牛不能被安排在同乙個畜欄吃草。求需要的最小畜欄數目和每頭牛對應的畜...
畜欄預定(貪心)
有n頭牛在畜欄中吃草。每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄。給定n頭牛和每頭牛開始吃草的時間a以及結束吃草的時間b,每頭牛在 a,b 這一時間段內都會一直吃草。當兩頭牛的吃草區間存在交集時 包括端點 這兩頭牛不能被安排在同乙個畜欄吃草。求需要的最小畜欄數目和每頭牛對應的畜...