洛谷 P3616 富金森林公園 樹狀陣列

2022-04-06 20:18:04 字數 956 閱讀 4866

傳送門

維護乙個山脈,單點修改,查詢有多少山峰高出水面

我是沙茶沙茶題都不會做只想到無修改可以用掃瞄線

答案就是所有比水面高的-相鄰都比水面高的啊

因為沒有區間詢問寫個$bit$都可以

有區間詢問?可以考慮主席樹吧

#include #include 

#include

#include

using

namespace

std;

typedef

long

long

ll;const

int n=2e5+5,m=6e5+5

;inline

intread()

while(c>='

0'&&c<='9')

return x*f;

}int

n,q,mp[m],m,a[n];

void

inimp()

int bin(int

v)

return0;

}struct

querq[n];

intc1[m],c2[m];

inline

void add(int *c,int p,int v)

inline

int sum(int *c,int

p)int

main()

//puts("hi");

inimp();

for(int i=1;i<=n;i++) a[i]=bin(a[i]),add(c1,a[i],1),add(c2,min(a[i-1],a[i]),1

);

//for(int i=1;i<=n;i++) printf("%d ",a[i]);puts("");

for(int i=1;i<=q;i++)

}}

洛谷P3616 富金森林公園

博艾的富金森林公園裡有乙個長長的富金山脈,山脈是由一塊塊巨石並列構成的,編號從1到n。每乙個巨石有乙個海拔高度。而這個山脈又在乙個盆地中,盆地裡可能會積水,積水也有乙個海拔高度,所有嚴格低於這個海拔高度的巨石,就會在水面下隱藏。由於地殼運動,巨石的海拔高度可能會隨時變化,每次一塊的巨石會變成新的海拔...

洛谷 P3616 富金森林公園

題鏈 題解 樹狀陣列,本題思路挺巧妙。考慮這種暴力演算法 設h i 為i位置的高度,水面的高度為b 從左列舉到右,如果 h i 1 基於上述暴力,可以得出 如果 h i 1 h i 且詢問的 b 在這兩個h值之間,則會貢獻答案。所以,用資料結構維護區間修改 把區間h i 1 1 h i 的值加一 和...

樹狀陣列 洛谷 P3616 富金森林公園

達成成就 noip題想不出!我是怎麼做到想去寫cdq分治加並查集的 還寫不出來 資料結構學傻系列 其實是noip題 這樣的話高度一樣怎麼辦 我們把乙個高度放大成乙個高度區間就可以避免有相同數字了 include include include using namespace std inline c...