博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
秦皇岛 I 题
阅读量:5766 次
发布时间:2019-06-18

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

有 n 个数字,你可以挑选其中任意个数字代表一个背包的体积,其余的数字表示的物品的体积,所挑选的背包必选完全装满,询问最终的方案数

思路分析 :

  定义dp[i] 表示挑选 i 状态下的物品的方案数,f[i]表示 i 状态下某一个物品为背包的方案数

  dp[ i | j ]  +=  dp[ j ] * f[ i ]

代码示例 :

int n;int a[20];int sum[(1<<15)+50], f[(1<<15)+50];int dp[(1<<15)+50];void solve() {    memset(sum, 0, sizeof(sum));    memset(f, 0, sizeof(f));    for(int i = 0; i < (1<
> t; while(t--){ scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%d", &a[i]); } solve(); } return 0;}

 

转载于:https://www.cnblogs.com/ccut-ry/p/9762503.html

你可能感兴趣的文章
Centos7下zookeeper-3.4.9安装(单机版)
查看>>
什么是企业信息化管理?
查看>>
DataType 参数不能为空
查看>>
Windows Server 2008 密码丢失恢复
查看>>
MyEclipse Reports和Eclipse BIRT详细对比分析(下)
查看>>
jQuery EasyUI使用教程之添加工具栏到数据网格
查看>>
《Linux学习并不难》Linux常用操作命令(7):date命令显示或设置系统日期和时间...
查看>>
《Linux学习并不难》用户管理(7):设置或修改用户密码
查看>>
python docker registry 历史镜像批量删除
查看>>
Promise对象---浅析
查看>>
Linux Expect多台批量执行命令
查看>>
btrfs
查看>>
Go(6 [反射])
查看>>
@Controller和@RestController区别
查看>>
你了解OpenEXR吗?
查看>>
官宣:这个职业帮你成为中产没问题
查看>>
大牛是怎么思考设计MySQL优化方案的?
查看>>
今天的你挺不错
查看>>
VLAN、二层交换机和三层交换机
查看>>
企业WiFi认证 保护企业的信息
查看>>