假設當前有 a[1]=7 a[2]=5 a[3]=4 三個發射塔,現在在後面加乙個發射塔,高度為 a[4]=6a[4] 要接受 a[3],a[2] 這兩個發射塔的訊號,以及將自身的訊號發射給 a[1]很明顯利用單調棧,將 a[3] 出棧,再將 a[2] 出棧,最後棧內只剩下 a[1] , a[4]最後統計每乙個位置處的能量即可演算法複雜度 o(n)
const int n=3e6+5;
int n,m;
int i,j,k;
pii a[n];
ll ans[n];
int main()
}if(s.size()) ans[s.top()]+=a[i].sc;
s.push(i);
}ll maxx=-1;
forn(i,1,n) maxx=max(maxx,ans[i]);
pll(maxx);
}//pause;
return 0;
}
P1901 發射站 單調棧
題目描述 某地有 n 個能量發射站排成一行,每個發射站 i 都有不相同的高度 hi,並能向兩邊 當 然兩端的只能向一邊 同時發射能量值為 vi 的能量,並且發出的能量只被兩邊最近的且比 它高的發射站接收。顯然,每個發射站發來的能量有可能被 0 或 1 或 2 個其他發射站所接受,特別是為了安 全,每...
洛谷P1901 發射站(單調棧)
某地有 n 個能量發射站排成一行,每個發射站 i 都有不相同的高度 hi,並能向兩邊 當 然兩端的只能向一邊 同時發射能量值為 vi 的能量,並且發出的能量只被兩邊最近的且比 它高的發射站接收。顯然,每個發射站發來的能量有可能被 0 或 1 或 2 個其他發射站所接受,特別是為了安 全,每個發射站接...
單調棧 洛谷 P1901 發射站
某地有 n 個能量發射站排成一行,每個發射站 i 都有不相同的高度 hi,並能向兩邊 當 然兩端的只能向一邊 同時發射能量值為 vi 的能量,並且發出的能量只被兩邊最近的且比 它高的發射站接收。顯然,每個發射站發來的能量有可能被 0 或 1 或 2 個其他發射站所接受,特別是為了安 全,每個發射站接...