Codeup剩下的樹

2021-09-12 07:15:26 字數 997 閱讀 3420

時間限制: 1 sec 記憶體限制: 32 mb

有乙個長度為整數l(1<=l<=10000)的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,…,l共l+1個位置上有l+1棵樹。

現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間(包括端點)所有的樹。

可能有m(1<=m<=100)個區間,區間之間可能有重疊。現在要求移走所有區間的樹之後剩下的樹的個數。

輸入兩個整數l(1<=l<=10000)和m(1<=m<=100)。

接下來有m組整數,每組有一對數字。

輸出可能有多組輸入資料,對於每組輸入資料,輸出乙個數,表示移走所有區間的樹之後剩下的樹的個數。

樣例輸入

4 21 2

0 211 2

1 54 7

0 0樣例輸出25

剛看到題目的時候就開始畫了一下數軸輔助分析,然後就一直陷在了不同組數左右邊界位置的問題上,分析了好幾種情況最後發現分析的一團糟;

然後重新畫了數軸之後就突然想到,其實題目的目的很簡單,只要知道最後剩餘的數字,隨便你把他想象成樹也好,想象成數字也好,至於中間的過程,你是怎麼刪除的,題目不需要知道;

所以可以把這一排樹,看成是全部為0的陣列,當你輸入左右邊界的時候,陣列在邊界中的數值全部改變成1,輸入結束後,計算陣列中從0到l個數中為0的個數(注意,使用for迴圈的時候,i是可以取到l的);

#include

#define max 10001

intmain()

;//陣列必須要定義在主迴圈內,否則可能會有值被改變;

while

(m--)}

int cnt=0;

for(i=

0;i<=l;i++

)printf

("%d\n"

,cnt)

;//注意輸出換行符

}return0;

}

codeup 剩下的樹

有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間 包括端點 所有的樹。可能有m ...

codeup 1814 剩下的樹

題目描述 有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個 整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間 包括端點 所有的樹...

Codeup 1814 剩下的樹

有乙個長度為整數l 1 l 10000 的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,l共l 1個位置上有l 1棵樹。現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間 包括端點 所有的樹。可能有m ...