4800: [Ceoi2015]Ice Hockey World Championship
2018-02-24 15:30
513 查看
题目链接
题目大意:n个物品,m块钱,给定每个物品的价格,求买物品的方案数
题解:meet in the middle
我的收获:23333
题目大意:n个物品,m块钱,给定每个物品的价格,求买物品的方案数
题解:meet in the middle
我的收获:23333
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n; ll a[1<<21],b[1<<21],w[50],m,ans; int ta,tb; void dfs(int x,int lim,ll now,ll *v,int &cnt) { if(now>m) return; if(x>lim){v[++cnt]=now;return ;} dfs(x+1,lim,now,v,cnt),dfs(x+1,lim,now+w[x],v,cnt); } void work() { sort(a+1,a+ta+1);sort(b+1,b+tb+1); for(int i=1,j=tb;i<=ta&&j>=1;i++) { while(a[i]+b[j]>m&&j>=1) j--; ans+=j; } printf("%lld\n",ans); } void init() { scanf("%d%lld",&n,&m); for(int i=1;i<=n;i++) scanf("%lld",&w[i]); dfs(1,n>>1,0,a,ta); dfs((n>>1)+1,n,0,b,tb); } int main() { init(); work(); return 0; }
相关文章推荐
- [BZOJ4800][Ceoi2015][Meet In Middle]Ice Hockey World Championship
- BZOJ 4800: [Ceoi2015]Ice Hockey World Championship meet_in_the_middle
- bzoj4800 [Ceoi2015]Ice Hockey World Championship
- bzoj 4800: [Ceoi2015]Ice Hockey World Championship meet in the middle
- BZOJ4800 [Ceoi2015]Ice Hockey World Championship
- BZOJ 4800: [Ceoi2015]Ice Hockey World Championship
- 【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
- 4800: [Ceoi2015]Ice Hockey World Championship
- bzoj4798[CEOI2015] Calvinball championship
- BZOJ 4800 [Ceoi2015]Ice Hockey World Championship ……
- [BZOJ 4800][Ceoi2015]Ice Hockey World Championship:双向搜索
- CEOI2015 Day1Task2 Calvinball championship
- bzoj [4800] [Ceoi2015]Ice Hockey World Championship
- BZOJ 4800([Ceoi2015]Ice Hockey World Championship-meet in the middle)
- 【bzoj4800】[Ceoi2015]Ice Hockey World Championship 折半搜索
- 【BZOJ】4800 [Ceoi2015]Ice Hockey World Championship 折半查找
- [BZOJ]4800: [Ceoi2015]Ice Hockey World Championship dfs+二分