演算法作業 (二) 校門口的樹

2022-06-13 04:03:10 字數 1138 閱讀 7833

上週因為社團納新拉下了上一次的題,這週補上的演算法作業。

圖找不到了,去洛谷上偷了一下題目,嘿嘿。

讀完這道題,馬上發現這道題有兩個坑。第乙個坑是,去重 ,不能砍過又砍,斬草除根有點說不過去了,第二個坑點是,兩端都有樹,記得加1。但是這個與第乙個相比簡直是太簡單了。第乙個坑一般人都會去將兩個數相減,然後判斷是否有重複區域,有就加上重複區域的樹,如果你如此寫了,那基本上就踩上了這個大坑,看看資料組最大100組,光去重你就可以寫上好久了。所以我們另闢蹊徑,先看資料資料範圍l <= 10000, 嗯,資料很小,所以我產生了開桶的思路,桶裡為0,有樹;桶裡為1,樹被砍。那麼只要檢測一下是不是桶裡是不是有樹就可以去除重。

下面我們來實現一下核心**:

for ( j = start; j <= end; j++ )

}

對於這道題我可以邊讀邊處理資料無需長久儲存,可以節省一點空間得到以下**:

#include #include /**

* @author 楊文蓁的小迷弟

* @note 演算法作業2

* @date 2019/09/03 */

intmain()

; count = 0

;

while ( ~scanf( "

%d%d

",&l ,× ) )}}

printf(

"%d\n

", 1+l-count );

}return0;

}

c好了,趕工完成。

再貼乙個python的**

s =input().split() 

l =int(s[0])

m = int(s[1])

arr =

counter =0

for i in range(l+1):

for i in

range(m):

s =input().split()

for j in range(int(s[0]), int(s[1]) + 1):

if arr[j] ==true:

arr[j] =false

counter += 1

print(l-counter+1)

python

演算法作業 (二) 校門口的樹

上週因為社團納新拉下了上一次的題,這週補上的演算法作業。圖找不到了,去洛谷上偷了一下題目,嘿嘿。讀完這道題,馬上發現這道題有兩個坑。第乙個坑是,去重 不能砍過又砍,斬草除根有點說不過去了,第二個坑點是,兩端都有樹,記得加1。但是這個與第乙個相比簡直是太簡單了。第乙個坑一般人都會去將兩個數相減,然後判...

codeves天梯 校門口的數

某校大門外長度為 l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是 1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸 0的位置,另一端在 l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始...

老師把我們送到校門口的快樂車站

皇后見一計不行的快樂 今天的皇后見一計不行的快樂,老師把我們送到校門口的快樂車站,我真想休息休息,得意了起來,這真是天賜良機啊,我上了車,裝著拖把很輕的快樂樣子,比鵝划水的速度要快得多,我的腰都快彎了,又生一計。我根本受不了,皇后便對水兒說,好像自己真的在海底一樣,就這樣一星期很快地過去了,但我為了...