NOIP校內模擬 T2 字胡串(分治)

2022-05-04 09:12:08 字數 534 閱讀 2106

%%%%%%%%%%%lst神仙 這是他的做法 吊了標算

對於這種有多少區間滿足要求的 我們套路的用分治做 每次都統計左端點在左半邊 右端點在右半邊的個數

設f(i) 表示當前點到中間分割點的最大值,g(i)表示當前點到中間分割點的或和

我們發現 g(i)≥f(i) 所以只需找到g[i]=f[i]的區間就好

然後f肯定是單調遞增的

所以可以維護雙指標

邊界條件很壞壞 膜lst神仙啊

#include#define n 1000005

#define int long long

using namespace std;

templateinline void read(t &x)

int n,s[n],f[n],g[n],ans;

inline void solve(int l,int r)

} solve(l,mid);

solve(mid+1,r);

}main()

NOIP校內模擬 T2 字胡串(分治)

lst神仙 這是他的做法 吊了標算 對於這種有多少區間滿足要求的 我們套路的用分治做 每次都統計左端點在左半邊 右端點在右半邊的個數 設f i 表示當前點到中間分割點的最大值,g i 表示當前點到中間分割點的或和 我們發現 g i f i 所以只需找到g i f i 的區間就好 然後f肯定是單調遞增...

NOIP模擬 字胡串(單調棧)

只剩5分鐘的時候打了乙個三重迴圈。完全沒想到固定左端點減少1個n。被diss了一波。對於乙個區間,如果他合法,那麼一定是有乙個非最大數在二進位制下與最大數有不同的地方,所以對於乙個數,利用單調棧記錄他作為最大數的區間 左右第乙個至少有一位與他不同的地方,利用容斥原理計算一下統計答案即可,複雜度 然後...

NOIP 模擬題 T2 寶藏(樹形dp)

題解 樹形dp 其實這道題說起來很簡單,用四個陣列 d1 d0 u0 u1分別表示從當前點向下更新,不返回 從當前點向下更新再回到當前點 從當前點向上更新回到當前點 從當前點向上更新不返回。用兩遍dfs求出這四個陣列 實現起來細節會比較多,耐心處理 include include include d...