博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ 4800][Ceoi2015]Ice Hockey World Championship(Meet-in-the-Middle)
阅读量:7255 次
发布时间:2019-06-29

本文共 810 字,大约阅读时间需要 2 分钟。

Description

有n个物品,m块钱,给定每个物品的价格,求买物品的方案数。

Solution

敲一道搜索水题吧…

Meet-in-the-Middle思想,分成两部分搜

#include
#include
#include
#include
#include
#include
typedef long long LL;using namespace std;int n;LL m,w[45];vector
v[2];void dfs(int x,int y,LL c,int f){ if(x>y) {v[f].push_back(c);return;} if(c+w[x]<=m)dfs(x+1,y,c+w[x],f); dfs(x+1,y,c,f);}int main(){ scanf("%d%lld",&n,&m); for(int i=1;i<=n;i++) scanf("%lld",&w[i]); dfs(1,n/2,0,0); dfs(n/2+1,n,0,1); sort(v[0].begin(),v[0].end()); sort(v[1].begin(),v[1].end()); int i=0,j=v[1].size()-1; LL ans=0; while(i
=0) { while(v[0][i]+v[1][j]>m&&j>=0)j--; ans+=j+1; i++; } printf("%lld\n",ans); return 0;}

 

转载于:https://www.cnblogs.com/Zars19/p/6686747.html

你可能感兴趣的文章
高性能图文混排框架,构架顺滑的iOS应用-b
查看>>
windows 下安装使用ipython
查看>>
苹果电脑macbook怎样强制关闭软件
查看>>
Linux下编译LibCURL
查看>>
错误提示:通过 Web 服务器的身份验证的用户无权打开文件系统上的文件
查看>>
python 取两数的百分比
查看>>
1-MSP430点亮一个灯
查看>>
Local System、Local Service與Network Service
查看>>
利用SQL语句查询数据库中所有表
查看>>
虚拟机中的锁优化简介(适应性自旋/锁粗化/锁削除/轻量级锁/偏向锁)
查看>>
Golang的交互模式进阶-读取用户的输入
查看>>
mycat中间件--linux安装mycat1.6版本
查看>>
MySQL的用户管理
查看>>
linux配置java环境变量(详细)
查看>>
HTML CSS + DIV实现整体布局
查看>>
【开源项目】电视盒子好用又强大的APP: TVRemoteIME
查看>>
Java开发报表——Grid++Report 报表设计器
查看>>
三、加载公共语言运行时
查看>>
ABP框架系列之三十五:(MVC-Controllers-MVC控制器)
查看>>
SpringBoot(二)Web整合开发
查看>>