聯賽膜你測試24 答題 題解

2022-02-02 00:35:07 字數 1253 閱讀 8127

我嚴重懷疑這題是個卡常題。。。

最後把sort換成stable_sort才過去,人都傻了

首先要看對題啊,

上來整個雙重否定句,欺負我語文爛?那我也沒辦法嚶嚶嚶

大概意思就是,給你n個數,這些數顯然可以組成\(2^n\) 個數(每個數選或不選),要你選乙個數,問至少要多大才能夠有不多於(1好像還是很繞

總之就是這樣啦

首先考慮爆搜,可以拿到30分的好成績,因為n>20以後,\(o(2^n)\)的複雜度就萎了。那這時怎麼辦呢?

可以考慮類似於折半搜尋的方法,先處理出前n/2個數能夠拼出的所有數,再處理出後n/2個數能夠拼出的所有數,最後再二分答案。

**:

#include using namespace std;

typedef long long ll;

const int maxn=1500000+10;

const double eps=1e-9;

int b[50];

ll a[maxn],c[maxn];

int n,tot,cnt;

double p;

ll ss;

void dfs(int now,ll w)

dfs(now+1,w);

dfs(now+1,w+b[now]);

}bool cmp(int x,int y)

void dfs2(int now,ll w)

dfs2(now+1,w);

dfs2(now+1,w+b[now]);

}void dfs3(int now,ll w)

dfs3(now+1,w);

dfs3(now+1,w+b[now]);

}bool check(int x)

if(head>tot) break;

res+=tot-head+1;

} return reseps) ss++;

int l=1,r=a[tot]+c[cnt];

while(l<=r)

printf("%d\n",l);

}void solve()

solve2();

}int main()

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

因為跨過最大值的區間一定是合法的,所以我們人為地把最大值放在最左邊 我們要統計的就是在最大值右邊單調不降的序列,可以用單調棧維護 需要特殊處理相同的情況 include include include include define rg register inline int read while ...

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

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

noip膜你賽day2第一題

題意 有乙個由0和1組成的陣列,定義一種新運算azui,1 azui 1 1,1 azui 0 0,0 azui 1 0,0 azui 0 1,給出乙個長度為n的該陣列,以及m個查詢l,r,表示將區間 l,r 從l乙個乙個azui到r的值。題解 額,先說說稍微複雜一點的做法,可以發現,這個azui運...