聯賽模擬測試24 D 你相信引力嗎 單調棧

2022-01-10 16:02:42 字數 830 閱讀 2969

因為跨過最大值的區間一定是合法的,所以我們人為地把最大值放在最左邊

我們要統計的就是在最大值右邊單調不降的序列,可以用單調棧維護

需要特殊處理相同的情況

#include#include#include#include#define rg register

inline int read()

while(ch>='0' && ch<='9')

return x*fh;

}const int maxn=1e7+5;

int n,a[maxn],sta[maxn],tp,be,ed,mmax,cnt[maxn];

long long ans;

int main()

} ed=be+n-1;

for(rg int i=be;i<=ed;i++) else

sta[++tp]=a[i];

if(a[i]==sta[tp-1]) cnt[tp]=cnt[tp-1]+1;

else cnt[tp]=1;

} while(tp>2)

printf("%lld\n",ans);

return 0;

}

聯賽模擬測試24 聯合權值 改

考完之後聽說往年有一年聯賽考過一道類似的題,於是一下子又以為要涼涼了,自信一點,把以為去掉 我們不妨先來考慮如何統計總和,我們考慮列舉每乙個點作為中間點的時候對於答案的貢獻,暴力列舉會 t 到飛起,我們可以記錄以該點的所有出邊鏈結的點的權值總和,之後再對總和平方,就可以得到乙個部分重複的答案,重在了...

牛客練習賽24 D

名字挺有意思的,排插樹,雖然這是個圖。算dijkstra的模版題,求最短路裡面最長的那條,因為到講台的距離總是取決於最短的那條路,但是又要求離講台最遠,那麼我們通過dijkstra計算出起始點到所有點的最短路然後遍歷找最大值就好。如下 include using namespace std type...

聯賽模擬測試34

考場打表 rand 正解可以根據乙個倍數往上翻 如果乙個數b是a的n倍,那麼b可以由a貼上n次得到 開乙個佇列按照每個因數倍增幾次取最小即可 藍書原題 csp考試之前還看來著 然後考場假了 打了暴力滾粗 下來之後一點就透了 等比數列求和 對於唯一一組hack資料 是mod完階乘出0了 特判一次直接往...