题意:有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]的更多相关文章

  1. 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, ...

  2. 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 ...

  3. Codeforces 687C. The Values You Can Make (dp)

    题目链接:http://codeforces.com/problemset/problem/687/C 题目大概说给n个各有价值的硬币,要从它们中选出若干个组合成面值k,而要求的是各个方案里这些选出的 ...

  4. TopCoder SRM 722 Div1 Problem 600 DominoTiling(简单插头DP)

    题意  给定一个$12*12$的矩阵,每个元素是'.'或'X'.现在要求$1*2$的骨牌铺满整个矩阵, 'X'处不能放置骨牌.求方案数. 这道题其实和 Uva11270 是差不多的,就是加了一些条件. ...

  5. CF R 635 div1 C Kaavi and Magic Spell 区间dp

    LINK:Kaavi and Magic Spell 一打CF才知道自己原来这么菜 这题完全没想到. 可以发现 如果dp f[i][j]表示前i个字符匹配T的前j个字符的方案数 此时转移变得异常麻烦 ...

  6. 7九章算法强化班全解--------Hadoop跃爷Spark

    ------------------------------------------------------------第七周:Follow up question 1,寻找峰值 寻找峰值 描述 笔记 ...

  7. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  8. sandy bridge

      SANDY BRIDGE SPANS GENERATIONS Intel Focuses on Graphics, Multimedia in New Processor Design By Li ...

  9. [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 ...

随机推荐

  1. mysqlshow(数据库对象查看工具)

    mysqlshow是mysql客户端对象查看工具,可以用来查看数据库.数据库中的表.表中的列.索引等. 1.mysqlshow命令的语法 shell > mysqlshow [options] ...

  2. 转 Dock 外 命令解析

    RUN vs CMD vs ENTRYPOINT - 每天5分钟玩转 Docker 容器技术(17) 小结: run 主要是安装镜像,安装软件. CMD 设置容器启动后默认执行的命令及其参数,但 CM ...

  3. PHP 简单答题系统

    --sample 1: <!DOCTYPE html><html><head> <title>登录</title> <style ty ...

  4. hdu 6012 Lotus and Horticulture 打标记

    http://acm.hdu.edu.cn/showproblem.php?pid=6012 我们希望能够快速算出,对于每一个温度,都能够算出它在这n颗植物中,能得到多少价值. 那么,对于第i科植物, ...

  5. 微信打开网址添加在浏览器中打开提示 http://caibaojian.com/weixin-tip.html

    原文链接:http://caibaojian.com/weixin-tip.html#t2 使用微信打开网址时,无法在微信内打开常用下载软件,手机APP等.网上流传的各种微信打开下载链接,微信已更新基 ...

  6. 把Scheme翻译成Java和C++的工具

    一.为什么要写这个工具? 公司内容有多个项目需要同一个功能,而这些项目中,有的是用Java的,有的是用C++的,同时由于某些现实条件限制,无法所有项目都调用统一的服务接口(如:可能运行在无网络的情况下 ...

  7. qt5.8 链接mysql错误:driver not load

    转载请注明出处:http://www.cnblogs.com/dachen408/p/7155858.html 问题:qt5.8 链接mysql错误:driver not load. 解决方案:1.安 ...

  8. 【原创】webbluetoorh 在windows下无法显示搜索列表,在mac下正常的解决办法

    google webbluetooth在windows下不能弹出设备搜索列表提示“Web Bluetooth API is not available”,因为webbluetooth是google新推 ...

  9. Flask框架 之上下文、请求钩子与Flask_Script

    一.上下文 请求上下文:request与session 应用上下文:current_app与g:一次请求多个函数可以用它传参 @app.route("/") def index() ...

  10. CAD参数绘制多行文字(网页版)

    在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dP ...