[BZOJ4800][Ceoi2015][Meet In Middle]Ice Hockey World Championship
2017-03-29 21:11
471 查看
n只有40啊
把物品分成两半,分别搜出这两半的方案,sort后two-pointers就可以了
把物品分成两半,分别搜出这两半的方案,sort后two-pointers就可以了
#include <cstdio> #include <iostream> #include <algorithm> #include <vector> #define N 45 using namespace std; typedef long long ll; int n; ll m; ll A ,B ; vector<ll> pa,pb; void dfs1(int x,ll w){ if(x>(n/2)) return (void)pa.push_back(w); dfs1(x+1,w); if(w+A[x]<=m) dfs1(x+1,w+A[x]); } void dfs2(int x,ll w){ if(x>(n+1)/2) return (void)pb.push_back(w); dfs2(x+1,w); if(w+B[x]<=m) dfs2(x+1,w+B[x]); } int main(){ scanf("%d%lld",&n,&m); for(int i=1;i<=n/2;i++) scanf("%lld",&A[i]); for(int i=1;i<=(n+1)/2;i++) scanf("%lld",&B[i]); dfs1(1,0); dfs2(1,0); sort(pa.begin(),pa.end()); sort(pb.begin(),pb.end()); //for(int i=0;i<pa.size();i++) printf("%lld ",pa[i]); putchar('\n'); //for(int i=0;i<pb.size();i++) printf("%lld ",pb[i]); putchar('\n'); ll Ans=0; for(int i=0,j=pb.size()-1;i<pa.size();i++){ while(pa[i]>m-pb[j]&&j>=0) j--; Ans+=j+1; } printf("%lld\n",Ans); }
相关文章推荐
- BZOJ 4800: [Ceoi2015]Ice Hockey World Championship meet_in_the_middle
- bzoj 4800: [Ceoi2015]Ice Hockey World Championship meet in the middle
- 【BZOJ4800】[Ceoi2015]Ice Hockey World Championship Meet in the Middle
- BZOJ4800 [Ceoi2015]Ice Hockey World Championship
- BZOJ4800 [Ceoi2015]Ice Hockey World Championship
- bzoj4800 [Ceoi2015]Ice Hockey World Championship
- BZOJ 4800: [Ceoi2015]Ice Hockey World Championship
- 4800: [Ceoi2015]Ice Hockey World Championship
- BZOJ 4800([Ceoi2015]Ice Hockey World Championship-meet in the middle)
- bzoj4800: [Ceoi2015]Ice Hockey World Championship
- 【meet in the middle】的几个例题【BZOJ 4800】&【SPOJ ABCDEF】
- bzoj [4800] [Ceoi2015]Ice Hockey World Championship
- BZOJ_4800_[Ceoi2015]Ice Hockey World Championship_双指针
- [Meet In Middle] BZOJ 2679 [Usaco2012 Open]Balanced Cow Subsets
- [bzoj4800][Ceoi2015]Ice Hockey World Championship
- [BZOJ]4800: [Ceoi2015]Ice Hockey World Championship dfs+二分
- BZOJ 4800 [Ceoi2015]Ice Hockey World Championship ……
- [BZOJ 4800][Ceoi2015]Ice Hockey World Championship:双向搜索
- 【BZOJ】4800 [Ceoi2015]Ice Hockey World Championship 折半查找
- 【bzoj4800】[Ceoi2015]Ice Hockey World Championship 折半搜索