d. max median 二分 + 思維
題目大意:
給你乙個長度為n的序列,乙個長度為 x 的中位數是 這個序列重新排序之後的 \(\frac\) 向下取整的位置,讓你求長度至少為 \(k\) 的子串行的最大中位數是多少?
題解:
#include using namespace std;
typedef long long ll;
const int maxn = 2e5+10;
int pre[maxn],premin[maxn],n,k,a[maxn];
bool check(int x)
for(int i=k;i<=n;i++)
return false;
}int main()
printf("%d\n",ans);
return 0;
}
二分 差分 思維
二分 差分 思維 當猜了乙個數 x 總共有三種情況 裁判說數大了,那麼裁判說對的取值範圍是 x 裁判說數小了,那麼裁判說對的取值範圍是 x,裁判說數一樣,那麼裁判說對的取值範圍是 x,x 那麼我們只需要求最大有多少個區間重疊了就行了,問題就轉化成了區間的修改,單點查詢,可以考慮差分了。注意題目資料 ...
攀爬 二分, 思維
若存在乙個合法的攀爬序列,則其形式一定是 ak i 1 m ai bi la sum limits m a i b i geq l ak i 1 m ai bi l,於是考慮列舉 a ka k ak 設 di ai b id i a i b i di ai bi 按 d dd從大到小排序,然後 o ...
Maximum Value (二分 思維列舉)
you are given a sequence a consisting of n integers.find the maximum possible value of i divided by a j where 1 i,j n and a i a j.input the first line...