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

2021-09-27 08:30:49 字數 858 閱讀 5192

給出n≤40

n\leq40

n≤40

個比賽,給出每個比賽的票價以及m≤1

e18

m\leq1e18

m≤1e18

表示你的積蓄。然後求問能看的比賽的方案數是多少。

n

nn如果能夠再小一些就可以直接暴搜了,但是搜不得。但是拆成兩半然後把兩邊所有的可行方案的總和全部儲存下來,對左邊的某個方案x

xx,到右邊二分小於等於m−x

m-xm−

x的個數求和。

#includeusing namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const int n=40;

int a[n],mid;

ll c[1<<19],d[1<<19];

int tot1=0,tot2=0;

int n,mod;

void dfs1(int cur,int ed,ll sum)

dfs1(cur+1,ed,sum);

dfs1(cur+1,ed,(sum+a[cur])%mod);

}void dfs2(int cur,int ed,ll sum)

dfs2(cur+1,ed,sum);

dfs2(cur+1,ed,(sum+a[cur])%mod);

} int main()

} ans=max(ans,(c[tot1]+d[tot2])%mod);

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

return 0;

}

CEOI2015 Day2 世界冰球錦標賽

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

P3233 HNOI2014 世界樹(虛樹)

看到 mi 300000自然聯想到虛樹,簡單思考一下似乎可行,但剩下的部分貌似就比較麻煩。首先對重新構建的虛樹,考慮每個點應該被誰管。因為乙個點既可以被它子樹中的點管,也可以被子樹以外的點管,所以我們做兩次dfs。第一次先遍歷子節點,再更新,記錄的是乙個點子樹中最近的管他的點是誰。第二次先用從父節點...

洛谷P4553 80人環遊世界

題意 有m個人,給定n個城市構成dag。每個城市恰好有vi個人經過,每條邊有費用。每個人自選起點,終點。求最小費用。解 首先拆點,連邊,流量為 vi,vi 然後做有上下界有源匯最小費用可行流即可。1 include 2 include 3 include 4 include 5 include 6 ...