POJ 2808 校門外的樹

2022-08-04 08:42:16 字數 1017 閱讀 4600

時間限制:

1000m

記憶體限制:

65536kb

描述某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置;數軸上的每個整數點,即0,1,2,……,l,都種有一棵樹。

馬路上有一些區域要用來建地鐵,這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止點的座標都是整數,區域之間可能有重合的部分。現在要把這些區域中的樹(包括區域端點處的兩棵樹)移走。你的任務是計算將這些樹都移走後,馬路上還有多少棵樹。

輸入輸入的第一行有兩個整數l(1 <= l <= 10000)和 m(1 <= m <= 100),l代表馬路的長度,m代表區域的數目,l和m之間用乙個空格隔開。接下來的m行每行包含兩個不同的整數,用乙個空格隔開,表示乙個區域的起始點和終止點的座標。

輸出輸出包括一行,這一行只包含乙個整數,表示馬路上剩餘的樹的數目。

樣例輸入

500 3150 300100 200470 471
樣例輸出

298

(1)、源**:

#include

#include

using namespace std;

int main()

for(i = 0; i < m; i++)

for(i = 0; i <= l; i++)

cout << sum << endl;

return 0;

}(2)、解題思路:

這個問題可以概括為輸入乙個大的整數閉區間,及一些可能相互重疊的在該大區間內的小的整數閉區間。在大的整數閉區間內去除這些小的整數閉區間,問之後剩下的可能不連續的整數區間內有多少個整數。

可以採用用空間換時間的方法,用乙個陣列來模擬這些區間,類似於位向量的辦法。在陣列中乙個數代表一棵樹,若沒移走,為1,移走為0。每輸入乙個區間,就將區間內的數置為0,最後統計1的個數即為剩餘的樹的棵樹。

這類似於《程式設計珠璣》第一章中所講述的點陣圖或者位向量的方法。

百煉POJ 2808 校門外的樹

分析 這個問題可以概括為輸入乙個大的整數閉區間,及一些可能相互重疊的在該大區間內的小的整數閉區間。在大的整數閉區間內去除這些小的整數閉區間,問之後剩下的可能不連續的整數區間內有多少個整數。可以採用用空間換時間的方法,用乙個陣列來模擬這些區間,類似於位向量的辦法。在陣列中乙個數代表一棵樹,若沒移走,為...

2 2校門外的樹 POJ 2808(動態申請空間)

note c 不能用變數定義陣列長度,應通過指標來動態申請空間,實現動陣列長度的變數賦值。eg int a new int i i為變數 問題描述 某校門外長度為l的馬路上有一排樹,每兩顆相鄰的樹之間的間隔都是1m。可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數...

2808 校門外的樹

time limit 1000ms memory limit 65536kb description 某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。馬...