牛客 華華聽月月唱歌 貪心

2021-09-12 08:33:21 字數 899 閱讀 5586

第一行兩個正整數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...