知識點:單調棧
ac**:
#include
#include
#include
using
namespace std;
int a[
200005];
int vis[
200010];
int last[
200005];
int s[
200005];
int top;
intmain()
for(
int i=
1;i<=k;i++
)for
(int i=
1;i<=n;i++
)cout<<<
" ";
cout
}//單調棧
//如果當前數字比棧頂的小,且棧頂後面還有這個數,就彈出棧頂。
//如果這個數棧中還沒有,把它壓入。
//o(n)預處理last[i]// i最後一次出現的位置
牛客2023年度訓練聯盟熱身訓練賽第一場(講題)
e題 early orders 題意 給定 n k 和長度為n的陣列x i 1 k n 2e5,1 x i k 要在這個陣列裡找乙個長度為k的子串行,使得數字1到k在這個序列裡各出現一次,輸出字典序最小的子串行 輸入保證陣列 x i 包括了1到k的所有數字 思路 很容易想到貪心地選擇小的數放在前面,...
2023年度訓練聯盟熱身訓練賽第三場(IJ)
傳送門 題意 你有一輛輪胎會跑氣的自行車,打滿一次氣可以走的距離是d,一開始自行車的氣是滿的,城市中有 n 個點,你要從1點到 n 點,其中有 t 個點處可以給自行車打氣,你只能在自行車有氣的時候走,問從1到 n 的最短路 思路 先跑一遍floyd求出每兩點之間的最短路,然後重新構圖,兩個打氣點之間...
2023年度訓練聯盟熱身訓練賽第一場
鏈結 題意 給定若干個空間中的點,求從三個標準空間直角座標平面進去能夠全部覆蓋這些點的最小半徑 題解 注意 includeusing namespace std define n 1e5 5 define inf 99999999 define eps 1e 6 define powe x x x ...