日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转载】线段树题目2

發布時間:2024/1/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转载】线段树题目2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.hdu1166 敵兵布陣
更新節點,區間求和。

2.hdu1754 I Hate It
更新節點,區間最值.

.
3.hdu1698 Just a Hook
成段更新,總區間求和.

.
4.hdu1394 Minimum Inversion Number
更新節點,區間求和

.
5.hdu1779 (這個爆炸了,別做了)
成段更新,區間最值

.
6.pku2777 Count Color
成段更新,區間統計,位運算加速

.
7.pku3468 A Simple Problem with Integers
成段更新,區間求和(中間乘法會超int)

.
8.pku2528 Mayor’s posters
成段更新,區間統計(離散化)

一個很惡心的題目,昨天晚上看了題意,上網了解了一下離散化。離散化就是為了縮短線段的范圍,如兩個線段(1,6)和(4,9),離散化一下就是1->1,6->3,4->2,9->4,那么離散后的線段就是(1,3)和(2,4),把線段長度從(1,9)縮短到了(1,4),這種離散化是很實用的。離散的過程就是先把線段的坐標保存下來(1,6,4,9),再排序(1,4,6,9),之后對應(1->1,4->2,6->3,9->4),再根據這個對應修改原先的線段就好了。

.
9.hdu2795 Billboard
更新節點,詢問特殊

.
10.pku3667 Hotel
成段更新,尋找空間(經典類型,求一塊滿足條件的最左邊的空間)

.
11.hdu1540 Tunnel Warfare
更新節點,詢問節點所在區間(同上一道Hotel一樣類型的題目)

.
12.hdu2871 Memory Control
hotel變形題目,三個都函數一樣

.
13.hdu3016 Man Down
成段更新,單點查詢(簡單線段樹+簡單DP)

.
14.hdu1542 Atlantis
矩形面積并,掃描線法

.
15.hdu1255 覆蓋的面積
同上,掃描線法,我多加了一個系數csum,來統計覆蓋兩次的長度

.
16.hdu1828 Picture
掃描線,同面積統計,加了一個num_Seg統計一個掃描區域里的邊

.
17.pku1436 Horizontally Visible Segments
成段更新,成段詢問

.
18.pku3225 Help with Intervals
成段更新,總詢問區間(有個異或操作比較新穎)

.
19.pku2482 Stars in Your Window
成段更新,區間最值 + 掃描線(中間二分的地方會int溢出)

.
20.pku2828 Buy Tickets
思維很巧妙,倒過來做的話就能確定此人所在的位置

.
21.pku2464 Brownie Points II
更新節點,區間求和 + 掃描線(用兩個線段樹沿著掃描線更新,然后按”自己最多,對方最少”的方案一路統計)

.
22.pku3145 Harmony Forever
查找一個區間內最左邊的數,詢問的val大的話用線段樹,小的話線性掃描

.
23.pku2886 Who Gets the Most Candies?
尋找區間中的左數第N個數,約瑟夫環(學到了反素數表,可以不用把所有數字預處理出來了)

.
24.pku2991 Crane
記錄了線段的兩端點以及轉過的角度,成段的轉,超有意思的題目,做了之后會對線段樹理解更深刻

.
25.hdu1823 Luck and Love
二維線段樹,題目和運用范圍都沒一維的廣,隨便找了道題目練習下就好

.

適合非遞歸線段樹的題目:

Codeforces 612D The Union of k-Segments : 題解
題意:線段求交,給定一堆線段,按序輸出被覆蓋k次或以上的線段和點。
基礎題,先操作,最后一次下推標記,然后輸出,
維護兩個線段樹,一個線段覆蓋,一個點覆蓋。

Codeforces 35E Parade : 題解

題意:給定若干矩形,下端挨著地面,求最后的輪廓形成的折線,要求輸出每一點的坐標。

思路:雖然是區間修改的線段樹,但只需要在操作結束后一次下推標記,然后輸出,所以適合非遞歸線段樹。

URAL 1846 GCD2010 : 題解

題意:總共10萬個操作,每次向集合中加入或刪除一個數,求集合的最大公因數。(規定空集的最大公因數為1)

Codeforces 12D Ball : 題解

題意:

給N (N<=500000)個點,每個點有x,y,z ( 0<= x,y,z <=10^9 )

對于某點(x,y,z),若存在一點(x1,y1,z1)使得x1 > x && y1 > y && z1 > z 則點(x,y,z)是特殊點。

問N個點中,有多少個特殊點。

提示:排序+線段樹

Codeforces 19D Points : 題解

題意:

給定最多20萬個操作,共3種:

1.add x y :加入(x,y)這個點

2.remove x y :刪除(x,y)這個點

3.find x y :找到在(x,y)這點右上方的x最小的點,若x相同找y最小的點,輸出這點坐標,若沒有,則輸出-1.

提示:排序,線段樹套平衡樹

Codeforces 633E Startup Funding : 題解

這題需要用到一點概率論,組合數學知識,和二分法。

非遞歸線段樹在這題中主要解決RMQ問題(區間最大最小值問題),由于不帶修改,這題用Sparse Table求解RMQ是標答。

因為RMQ詢問是在二分法之內求的,而Sparse Table可以做到O(1)查詢,所以用Sparse Table比較好,總復雜度O(n*log(n))。

不過非遞歸線段樹也算比較快的了,雖然復雜度是O(n*log(n)*log(n)),還是勉強過了這題。

掃描線題目:
POJ 1177 Picture:給定若干矩形求合并之后的圖形周長 題解
HDU 1255 覆蓋的面積:給定平面上若干矩形,求出被這些矩形覆蓋過至少兩次的區域的面積. 題解
HDU 3642 Get The Treasury:給定若干空間立方體,求重疊了3次或以上的體積(這個是掃描面,每個面再掃描線)題解
POJ 2482 Stars in your window : 給定一些星星的位置和亮度,求用W*H的矩形能夠框住的星星亮度之和最大為多少。 題解

遞歸線段樹題目:
Codeforces 558E A Simple Task 題解
給定一個長度不超過10^5的字符串(小寫英文字母),和不超過5000個操作。

每個操作 L R K 表示給區間[L,R]的字符串排序,K=1為升序,K=0為降序。

最后輸出最終的字符串。

Codeforces 527C Glass Carving : 題解
給定一個矩形,不停地縱向或橫向切割,問每次切割后,最大的矩形面積是多少。

URAL1989 Subpalindromes 題解
給定一個字符串(長度<=100000),有10萬個操作。
操作有兩種:
1:改變某個字符。
2:判斷某個子串是否構成回文串。

HDU 4288 Coder : 題解
題意:對一個集合進行插入與刪除操作。要求詢問某個時刻,集合中的元素從小到大排序之后,序號%5 ==3 的元素值之和。
這題其實不一定要用線段樹去做的,不過線段樹還是可以做的。

HDU 2795 BillBoard : 題解
題意:有一個板,h行,每行w長度的位置。每次往上面貼一張海報,長度為1*wi .

每次貼的時候,需要找到最上面的,可以容納的空間,并且靠邊貼。

Codeforces 374D Inna and Sequence :題解
題意:給定百萬個數a[m],然后有百萬個操作,每次給現有序列加一個字符(0或1),或者刪掉已有序列中,第 a[0] 個,第a[1]個,…,第a[m]個。

Codeforces 482B Interesting Array: 題解
題意就是,給定n,m.

滿足m個條件的n個數,或說明不存在。

每個條件的形式是,給定 Li,Ri,Qi ,要求 a[Li]&a[Li+1]&…&a[Ri] = Qi ;

Codeforces 474E Pillar (線段樹+動態規劃): 題解

題意就是,給定10^5 個數(范圍10^15),求最長子序列使得相鄰兩個數的差大于等于 d。

POJ 2777 Count Color : 題解

給線段涂顏色,最多30種顏色,10萬個操作。

每個操作給線段涂色,或問某一段線段有多少種顏色。

30種顏色用int的最低30位來存,然后線段樹解決。

URAL 1019 Line Painting: 線段樹的區間合并 題解

給一段線段進行黑白涂色,最后問最長的一段白色線段的長度。

Codeforces 633H Fibonacci-ish II :題解

這題需要用到莫隊算法(Mo’s Algorithm)+線段樹區間修改,不過是單邊界的區間,寫起來挺有趣。

另一種解法就是暴力,很巧妙的方法,高復雜度+低常數居然就這么給過了。

樹套樹題目:
ZOJ 2112 Dynamic Rankings 動態區間第k大 題解
做法:樹狀數組套主席樹 或者 線段樹套平衡樹

Codeforces 605D Board Game : 題解
做法:廣度優先搜索(BFS) + 線段樹套平衡樹
Codeforces 19D Points : 題解

題意:

給定最多20萬個操作,共3種:

1.add x y :加入(x,y)這個點

2.remove x y :刪除(x,y)這個點

3.find x y :找到在(x,y)這點右上方的x最小的點,若x相同找y最小的點,輸出這點坐標,若沒有,則輸出-1.

提示:排序,線段樹套平衡樹

總結

以上是生活随笔為你收集整理的【转载】线段树题目2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。