世界冰球錦標賽題解

2022-08-26 21:57:33 字數 760 閱讀 6182

折半搜尋裸題

(注意陣列大小要大於1048576,作者第一次提交就只開了1000000,鍋了)

用乙個陣列c儲存並排序。

在列舉後一半的方案,設其費用為w,

按w從大到小排序,

用乙個單調指標維護c陣列中小於等於m-w的方案個數,

ans累加方案個數。

(w從大到小,m-w從小到大,指標單調右移)

當然你也可以離散化後用字首和(太麻煩了,不寫),

或者排序後用upper_bound(多此一舉)

**:

#include#define ll long long

using namespace std;

const int n=2e6+6;

int l=1,n1,n2,n,num1=0,num2=0;

ll t,m,ans=0,a[n],b[n],c[n],d[n];

inline ll read()

while(ch>='0'&&ch<='9') t=(t<<3)+(t<<1)+(ch-48),ch=getchar();

return f*t;

}void dfs(int x,ll y,int z,ll p,ll q,int &num)

dfs(x+1,y,z,p,q,num),dfs(x+1,y+q[x],z,p,q,num);

}int main()

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

return 0;

}

世界冰球錦標賽 折半搜尋

梁神園神 譯自 ceoi2015 day2 t1 ice hockey world championship 今年的世界冰球錦標賽在捷克舉行。bobek 已經抵達布拉格,他不是任何團隊的粉絲,也沒有時間觀念。他只是單純的想去看幾場比賽。如果他有足夠的錢,他會去看所有的比賽。不幸的是,他的財產十分有限...

CEOI2015 Day2 世界冰球錦標賽

題目描述 譯自 ceoi2015 day2 t1 ice hockey world championship 今年的世界冰球錦標賽在捷克舉行。bobek 已經抵達布拉格,他不是任何團隊的粉絲,也沒有時間觀念。他只是單純的想去看幾場比賽。如果他有足夠的錢,他會去看所有的比賽。不幸的是,他的財產十分有限...

洛谷P4799 世界冰球錦標賽 折半搜尋

給出n 40 n leq40 n 40 個比賽,給出每個比賽的票價以及m 1 e18 m leq1e18 m 1e18 表示你的積蓄。然後求問能看的比賽的方案數是多少。n nn如果能夠再小一些就可以直接暴搜了,但是搜不得。但是拆成兩半然後把兩邊所有的可行方案的總和全部儲存下來,對左邊的某個方案x x...