因為後面還需要每頭牛的編號,所以說明牛的區間排列之後還要還原,所以引入b記錄牛剛開始的位置方便還原
如果發現已經有的畜欄最小右邊>=準備進來牛的左邊,則再開一組畜欄,畜欄需要右邊和該位置的組數,所以要用結構體,記得過載 < 運算子
**如下:
#include using namespace std;
const int ma = 5e4 + 10;
struct stun[ma];//b代表第幾頭,n代表編號
int comp (stu a, stu c)
int comp1 (stu a, stu c)
struct qs
}a;priority_queueq;
int main()
sort(n,n+n,comp);
int num = 1; a.n = n[0].n = 1; a.mo = n[0].r;
q.push(a);
for (int i = 1 ;i < n; i++)
else
a.mo = n[i].r;
q.push(a);
} sort(n,n+n,comp1);
printf("%d\n",num);
for (int i =0 ; i < n; i++)
return 0;
}
畜欄預定(貪心)
有n頭牛在畜欄中吃草。每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄。給定n頭牛和每頭牛開始吃草的時間a以及結束吃草的時間b,每頭牛在 a,b 這一時間段內都會一直吃草。當兩頭牛的吃草區間存在交集時 包括端點 這兩頭牛不能被安排在同乙個畜欄吃草。求需要的最小畜欄數目和每頭牛對應的畜...
YbtOJ高效高階 貪心 3 畜欄預定
ybtoj高效高階 貪心 3 有n頭牛在畜欄中吃草。每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄,給出第i頭牛開始吃草的時間區間 ai bi a i,b i ai b i 求需要的最少畜欄數和每頭牛對應的畜欄方案。5 1 10 2 43 6 5 84 7412 324對每頭牛的開...
貪心 Ybt 畜欄預定
同一時間內,乙個畜欄只能供一頭牛使用。給出一些牛需要使用畜欄的時間段,讓你求使用的最少畜欄數量與安排方案。輸入第一行乙個 n 代表牛的數量 接下來 2 n 1 行,每行兩個數,代表這頭牛使用畜欄的起始時間與結束時間。輸出第一行乙個數,代表最少畜欄數量。接下來 2 n 1 行,每行乙個數,代表這頭牛安...