傳送門
維護乙個山脈,單點修改,查詢有多少山峰高出水面
我是沙茶沙茶題都不會做只想到無修改可以用掃瞄線
答案就是所有比水面高的-相鄰都比水面高的啊
因為沒有區間詢問寫個$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...