struct pointp[n];
1、選擇不相交區間
【例1】數軸上有n個開區間(ai,bi)。選擇盡量多個區間,使得這些區間兩兩沒有公共點。
【solution】
bool cmp(point x, point y){
if(x.b!=y.b)
return x.aelse
return x.bsort(p,p+n,cmp);
再一次選區間
2、區間選點問題
【例2】數軸上有n個閉區間[ai,bi]。取盡量少的點,使得每個區間內都至少有乙個點(不同區間內含的點可以是同乙個)。
【solution】排序方式:所有區間按b從小到大排序(b相同時a從大到小排序),選點時選未覆蓋點的區間的右端點。
3、區間覆蓋問題
【例3】數軸上有n個閉區間[ai,bi]。選擇盡量少的區間覆蓋一條指定線段[s,t]。
【solution】首先進行預處理,在[s,t]外部的線段全部除去。各區間按a從小到大排序(a相同時b從大到小排序)
不斷用已選擇的區間右端點bi更新要覆蓋線段的起點,知道已知線段被全部覆蓋。
簡單貪心總結
題目描述 大家千萬別讓波波蒙人的外表給騙了,其實他就是偷吃界所向披靡的大胃王 從前,有一天,實驗室買了一批新零食,而又剛好大家出去吃飯了,月黑風高,波波出動了 假設他有乙個容量為m的胃,實驗室的n件食物每件都有體積vi,有每一單位體積的美味值di,他想要能偷吃到食物的美味值相加和最大,假設他可以每件...
線段樹 乙個簡單的整數問題(未完)
你有n個整數,a1,a2,an。你需要處理兩種操作。一種操作是在給定間隔中為每個數字新增一些給定數字。另一種是要求給定間隔中的數字總和。第一行包含兩個數字n和q.1 n,q 100000。第二行包含n個數字,a1,a2,an的初始值。1000000000 ai 1000000000。接下來的q行中的...
nyoj 71 獨木舟上的旅行 貪心 簡單
時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 進行一次獨木舟的旅行活動,獨木舟可以在港口租到,並且之間沒有區別。一條獨木舟最多只能乘坐兩個人,且乘客的總重量不能超過獨木舟的最大承載量。我們要儘量減少這次活動中的花銷,所以要找出可以安置所有旅客的最少的獨木舟條數。現在請寫乙個...