P1901 發射站(單調棧)

2021-10-08 14:58:51 字數 709 閱讀 5880

假設當前有 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 個其他發射站所接受,特別是為了安 全,每個發射站接...