第一行兩個正整數n、m,表示歌曲的原長和片段的個數。接下來m行,每行兩個正整數l、r表示第i的片段對應的區間是[l,r]。
如果可以做到,輸出最少需要的片段的數量,否則輸出-1。示例1
複製
4 2複製1 23 4
2示例2
複製
4 2複製1 13 4
-1示例3
複製
10 5複製1 12 5
3 64 9
8 10
4
1≤l≤r≤109,1≤n≤109,1≤m≤1051≤l≤r≤109,1≤n≤109,1≤m≤105思路:貪心,將區間按照左端點從左到右排序,若左端點相等,則右端點越靠右越好。然後從第乙個區間開始向後列舉,找到左端點小於等於該區間右端點+1的且右端點最靠右的區間,以此類推。
#include#include#include#include#includeusing namespace std;
const int maxn=100005;
struct node
int cnt=1;
int i=1;
while(1)
int index=i;
int j=i+1;
while(a[j].l<=beg.r+1&&ja[index].r)
index=j;
++j;
} beg=a[index];
i=index;
++cnt;
} printf("%d\n",cnt);
return 0;
}
華華聽月月唱歌(貪心)
第一行兩個正整數n m,表示歌曲的原長和片段的個數。接下來m行,每行兩個正整數l r表示第i的片段對應的區間是 l,r 如果可以做到,輸出最少需要的片段的數量,否則輸出 1。示例1 複製4 2 1 23 4 複製2 示例2複製4 2 1 13 4 複製 1 示例3複製10 5 1 12 5 3 64...
華華和月月種樹(牛客)
題意 華華看書了解到,一起玩養成類的遊戲有助於兩人培養感情。所以他決定和月月一起種一棵樹。因為華華現在也是資訊學高手了,所以他們種的樹是資訊學意義下的。華華和月月一起維護了一棵動態有根樹,每個點有乙個權值。剛開存檔的時候,樹上只有 0 號節點,權值為 0 接下來有兩種操作 操作 1 輸入格式1 i,...
牛客 月月查華華手機(列舉優化)
題目分析 1.這個題目如果直接暴力那麼時間複雜度太大,那麼我們可以用優化方法,直接跳轉到後面的字元一一比較,只要有乙個不符合,那麼就return 0 2.我們開兩個陣列,用last陣列不斷地更新a字串每個位置的字母,再把它賦給二維陣列nec,我們用nec陣列來記錄每乙個字母後面字母出現的相應位置 3...