有n頭牛在畜欄中吃草。給了每頭牛的吃草時間段,每個欄同時只能容納一頭牛,問最少要用幾個欄能使所有牛吃飯;每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄。
給定n頭牛和每頭牛開始吃草的時間a以及結束吃草的時間b,每頭牛在[a,b]這一時間段內都會一直吃草。
當兩頭牛的吃草區間存在交集時(包括端點),這兩頭牛不能被安排在同乙個畜欄吃草。
求需要的最小畜欄數目和每頭牛對應的畜欄方案。
輸入格式
第1行:輸入乙個整數n。
第2…n+1行:第i+1行輸入第i頭牛的開始吃草時間a以及結束吃草時間b,數之間用空格隔開。
輸出格式
第1行:輸入乙個整數,代表所需最小畜欄數。
第2…n+1行:第i+1行輸入第i頭牛被安排到的畜欄編號,編號是從1開始的 連續 整數,只要方案合法即可。
資料範圍
1≤n≤50000,
1≤a,b≤1000000
輸入樣例:
51 10
2 43 6
5 84 7
輸出樣例:41
2324
學習了一下結構體的符號;還是不太懂emmm
先將所有的資料按開始時間排序,用乙個優先佇列維護當前最早的結束時間,下一頭牛的開始時間如果早與佇列的top就新開乙個欄否則就用top的那個欄;
#include
#include
using
namespace std;
struct node
}a[50005];
priority_queue
,greater
> q;
bool
cmp(node a,node b)
bool
cmp2
(node a,node b)
intmain()
else
}sort
(a,a+n,cmp2)
; cout
int i=
0;i) cout<.pos<}
AcWing演算法基礎1 1
排序 快速排序 快排 寫題的時候用的不多基本都是直接sort 面試可能要手擼快排,上模板 1 void quick sort int q,int l,intr 2 12 quick sort q,l,j quick sort q,j 1 r 13 模板題 給定你乙個長度為n的整數數列。請你使用快速排...
acwing藍橋杯c AB組)1 1 遞迴
整理自acwing y總課程藍橋杯c ab組輔導課 試聽課 嗶哩嗶哩 bilibili 題目描述 抽象出資料型別 dfs,圖論,dp,貪心等 遞迴引入 自己呼叫自己 列如斐波那契數列1,2,3,5,8,13 include include using namespace std intf int n...
AcWing 日期問題
小明正在整理一批歷史文獻。這些歷史文獻 現了很多日期。小明知道這些日期都在1960年1月1日至2059年12月31日。令小明頭疼的是,這些日期採用的格式非常不統一,有採用年 月 日的,有採用月 日 年的,還有採用日 月 年的。更加麻煩的是,年份也都省略了前兩位,使得文獻上的乙個日期,存在很多可能的日...