題目描述 description
在大學期間,經常需要租借教室。大到院系舉辦活動,小到學習小組自習討論,都需要向學校申請借教室。教室的大小功能不同,借教室人的身份不同,借教室的手續也不一樣。
面對海量租借教室的資訊,我們自然希望程式設計解決這個問題。我們需要處理接下來n天的借教室資訊,其中第i天學校有ri個教室可供租借。共有m份訂單,每份訂單用三個正整數描述,分別為dj, sj, tj,表示某租借者需要從第sj天到第tj天租借教室(包括第sj天和第tj天),每天需要租借dj個教室。我們假定,租借者對教室的大小、地點沒有要求。即對於每份訂單,我們只需要每天提供dj個教室,而它們具體是哪些教室,每天是否是相同的教室則不用考慮。借教室的原則是先到先得,也就是說我們要按照訂單的先後順序依次為每份訂單分配教室。如果在分配的過程中遇到乙份訂單無法完全滿足,則需要停止教室的分配,通知當前申請人修改訂單。這裡的無法滿足指從第sj天到第tj天中有至少一天剩餘的教室數量不足dj個。現在我們需要知道,是否會有訂單無法完全滿足。如果有,需要通知哪乙個申請人修改訂單。
輸入描述 input description
第一行包含兩個正整數n, m,表示天數和訂單的數量。
第二行包含n個正整數,其中第i個數為ri,表示第i天可用於租借的教室數量。
接下來有m行,每行包含三個正整數dj, sj, tj,表示租借的數量,租借開始、結束分別在
第幾天。
每行相鄰的兩個數之間均用乙個空格隔開。天數與訂單均用從1開始的整數編號。
輸出描述 output description
如果所有訂單均可滿足,則輸出只有一行,包含乙個整數 0。否則(訂單無法完全滿足)
輸出兩行,第一行輸出乙個負整數-1,第二行輸出需要修改訂單的申請人編號。
樣例輸入 sample input
4 3
2 5 4 3
2 1 3
3 2 4
4 2 4
樣例輸出 sample output
-1 2
資料範圍及提示 data size & hint
【輸入輸出樣例說明】
classroom.out
-1 2
第 1 份訂單滿足後,4 天剩餘的教室數分別為 0,3,2,3。第 2 份訂單要求第 2 天到
第 4 天每天提供 3 個教室,而第 3 天剩餘的教室數為 2,因此無法滿足。分配停止,通知第
2 個申請人修改訂單。
—————————————分割線—————————————
分析:
這道題是一道線段樹裸題,不再做贅述。
**:
1/*2classroom2023年noip全國聯賽提高組day2t2
3code[vs]1217
4線段樹動態維護區間最小值
5code by :shhhs
620160809 12:47 7*/
8 #include 9 #include 10 #include 11 #include
12 #include 13 #include 14 #include 15
16#define maxn 1000010
1718
using
namespace
std;
19 typedef long
long
qaq;
2021
struct
tree ;
22 inline qaq min(qaq a ,qaq b)
2324 tree tr[maxn<<2
];25
qaq arr[maxn],val;
2627
qaq read()
34return
x;
35}
3637 inline void
push_down ( qaq i ,qaq m )45}
4647
void
build_tree(qaq x ,qaq y,qaq i )56}
5758
void
update_tree (qaq q ,qaq w ,qaq i )
64else
70else
if ( w<=mid )
73else
77 tr[i].mintr = min(tr[i<<1].mintr , tr[i<<1|1
].mintr);78}
79}8081
intmain()
9293 printf("
0\n"
);94
goto
end;
9596
fail:
97 printf("
-1\n%lld
",m-m);
98end:
99return0;
100 }
2016-10-08 15:37:31
(完)
NOIP 2012 提高組 D2T2借教室
在大學期間,經常需要租借教室。大到院系舉辦活動,小到學習小組自習討論,都需要向學校申請借教室。教室的大小功能不同,借教室人的身份不同,借教室的手續也不一樣。面對海量租借教室的資訊,我們自然希望程式設計解決這個問題。我們需要處理接下來n天的借教室資訊,其中第i天學校有ri個教室可供租借。共有m份訂單,...
NOIP2012 DAY1 T2 國王遊戲
恰逢 h國國慶,國王邀請n位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所有人的左手上的數...
NOIP2012d2t2 國王遊戲
題目大意 國王和n個大臣站成一列,編號為0,1,2.n 國王在隊首 每個人有兩個數字 ai,bi 0 i n 問如何排列大臣的序列,使 a0 a1 ai 1 bi 1 i n 中的最大值最小,求這個最小值 首先注意對於100 的資料,有1 n 1,000,0 a b 10000。高精度,居然要高精度...