[cf360 div1.C]The Values You Can Make[Dp]
题意:有n个硬币,面值不同,求能组成K的方案中,每个方案的硬币可以凑成那些答案。
例如, K=5 面值={1,1,1,2,3}
K={1,1,1,2} K={1,1,3} K={2,3} 那么答案是 {1,1,1,2}能组成的面值∪{1,1,3}组成的面值∪{2,3}组成的面值。
做法:
考虑如果A在答案中,那么K-A一定也在答案中。
也就是说,如果A和K-A可以用不相交的硬币子集构成,那么他们都在答案中。
用dp[i][j]表示i和j是否可以同时出现在答案中。
因为每个硬币只能用一次,dp[i+x][j]=dp[i][j+x]=1
可以$n^3$爆枚,也可以用bitset优化,最终统计$\sum dp[i][k-i]$
#include<cstdio>
int i,j,dp[][],n,k,K;
int main(){
dp[][]=;
scanf("%d%d",&n,&K);
for(int kk=;kk<n;kk++){
int x;
scanf("%d",&x);
for(i=;i>=;i--)
for(j=;j>=;j--)
if(dp[i][j])dp[i+x][j]=dp[i][j+x]=;
}
for(i=;i<=K;i++)
k+=dp[i][K-i];
printf("%d\n",k);
for(i=;i<=K;i++)
if(dp[i][K-i])printf("%d ",i);
}
The Values You Can Make
[cf360 div1.C]The Values You Can Make[Dp]的更多相关文章
- Codeforces Round #360 (Div. 2) E. The Values You Can Make DP
E. The Values You Can Make Pari wants to buy an expensive chocolate from Arya. She has n coins, ...
- codeforces 688E E. The Values You Can Make(dp)
题目链接: E. The Values You Can Make time limit per test 2 seconds memory limit per test 256 megabytes i ...
- Codeforces 687C. The Values You Can Make (dp)
题目链接:http://codeforces.com/problemset/problem/687/C 题目大概说给n个各有价值的硬币,要从它们中选出若干个组合成面值k,而要求的是各个方案里这些选出的 ...
- TopCoder SRM 722 Div1 Problem 600 DominoTiling(简单插头DP)
题意 给定一个$12*12$的矩阵,每个元素是'.'或'X'.现在要求$1*2$的骨牌铺满整个矩阵, 'X'处不能放置骨牌.求方案数. 这道题其实和 Uva11270 是差不多的,就是加了一些条件. ...
- CF R 635 div1 C Kaavi and Magic Spell 区间dp
LINK:Kaavi and Magic Spell 一打CF才知道自己原来这么菜 这题完全没想到. 可以发现 如果dp f[i][j]表示前i个字符匹配T的前j个字符的方案数 此时转移变得异常麻烦 ...
- 7九章算法强化班全解--------Hadoop跃爷Spark
------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...
- TopCoder比赛总结表
TopCoder 250 500 ...
- sandy bridge
SANDY BRIDGE SPANS GENERATIONS Intel Focuses on Graphics, Multimedia in New Processor Design By Li ...
- [LintCode] Coins in a Line II 一条线上的硬币之二
There are n coins with different value in a line. Two players take turns to take one or two coins fr ...
随机推荐
- 在面试官问你BS和CS区别的时候如何回答??
这是我下来整理好的,如果哪里不全,望大家多多指教 C/S是Client/Server的缩写.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Inform ...
- Object C学习笔记18-SEL,@ selector,Class,@class--转
一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体介绍参数: - (id)performSelector:(SEL)aSelector; - (id)performSele ...
- JUnit单元测试&注解
①测试方法上必须使用@Test进行修饰 ②测试方法必须使用public void 进行修饰,不能带任何的参数 ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开 ④测试类所在的包 ...
- easy ui diglog 点击关闭,触发事件
$('#dialogDiv').dialog({ onClose:function(){ alert('11111111') ; }});
- 坑爹的鲁大师,VMware Workstation 报错(AsyncSocket error)一例解决
今天准备把电脑上安装的VMware Play换成VMware Workstation,毕竟 Workstation 的快照功能还是很有必要的. 结果,VMware Workstation 安装成功后, ...
- CDN概述
- 数据库text字段存值用回车分隔
//查询 $sql = "SELECT attr_values FROM ecs_attribute WHERE attr_id=197"; $param_sel_sms = ar ...
- myslq 5.7 root 默认密码
sudo sumysqld_safe --skip-grant-tables --skip-networking & UPDATE mysql.user SET password=PASSWO ...
- MySql 基础知识-常用命令及sql语句
一.常用mysql命令行命令 1,启动mysql服务 net start mysql. 停止mysql服务 net stop mysql 2,netstart -na|findstr 330 ...
- Vue全局添加组件或者模块
import Api from './api.js' export default { install (Vue) { Vue.prototype.$Api = Api } } 这种格式就可以在mai ...