可以转化为01背包求方案数的问题,dp数组f[][]表示第几个砝码能称出的重量,可压缩至一维 转移方程为f(i,j)+=f(i-1,j-w[i]) 当前我们可以称出的重量必定是由之前的砝码重量转移过来的

#include<bits/stdc++.h>
using namespace std;
const int N=550;
const int maxn=1e6+7;
int f[maxn];
int a[maxn];
int v[maxn];//相当于01背包的物品重量
int num[10]={0,1,2,3,5,10,20};//砝码重量
int cnt;
int maxsum;
int ans;
int main()
{for(int i=1;i<=6;i++){scanf("%d",&a[i]);for(int j=1;j<=a[i];j++){v[++cnt]=num[i];//统计
        }}for(int i=1;i<=cnt;i++){maxsum+=v[i];//背包的最大容量
    }f[0]=1;//0也是一种方案,初始状态for(int i=1;i<=cnt;i++)//01背包
    {for(int j=maxsum;j>=v[i];j--){f[j]+=f[j-v[i]];}}for(int i=1;i<=maxsum;i++)//统计方案个数
    {if(f[i]){ans++;}}printf("Total=%d",ans);return 0;
}

转载于:https://www.cnblogs.com/LJB666/p/10808631.html

洛谷P2347 砝码称重 某一年noip提高组原题相关推荐

  1. 洛谷 P2347 砝码称重

    P2347 砝码称重 题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1 ...

  2. 洛谷P1411 砝码称重

    传送门啦 这个题总体思路就是先搜索在 $ dp $ void dfs(int keep,int now){//使用 放弃 if(now > m) return;//已经放弃超过m个了,就退出if ...

  3. 【题解】Luogu P2347 砝码称重

    正经·DP题解 一道非常好的背包练手题( sto(注:原思路来源 SLYZ_0120 的题解)orz 开始这道题 1.输入六个数,存进数组中 2.初始化 f 数组为0. f [ i ] 表示重量为 i ...

  4. 盾神与砝码称重java_[蓝桥杯][算法提高VIP]盾神与砝码称重-题解(Java代码)

    ###### ~~最开始写的时候被搞蒙了,根本没考虑到砝码的放置会有三种情况,我还以为只能放在物品的另一边,现在才想出来~~ ```java import java.util.Scanner; pub ...

  5. 砝码称重【第十二届蓝桥杯】【省赛】【B组】

    砝码称重[第十二届蓝桥杯][省赛][B组] Description 你有一架天平和N个砝码,这N个砝码重量依次是W1.W2,-WN 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...

  6. 【DP】砝码称重 (ssl 1072)

    砝码称重 ssl 1072 题目大意: 有6种砝码,每种的个数分别为a1,a2,a3,a4,a5,a6,请问可以平出多少种重量(0除外) Description 设有1g.2g.3g.5g.10g.2 ...

  7. 【OJ8756】砝码称重V2,可达性多重背包

    砝码称重V2 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=100,000),要求:计 ...

  8. 【codevs2144】砝码称重2,哈希什么的都去死吧

    砝码称重 2 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 有n个砝码,现在要称一个质量为m的物体,请问最少需要挑出几个 ...

  9. Bailian4141 砝码称重【DP】

    4141:砝码称重 总时间限制: 1000ms 内存限制: 65536kB 描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000),要求:计算用这些砝码能称出的不同 ...

最新文章

  1. 如何组织公司的线下活动
  2. NumPy的思考……
  3. 大数据学习笔记07:分布式文件系统HDFS
  4. ubuntu默认面板被删除后的恢复办法
  5. 树以及树简单的遍历方法
  6. while循环 dowhile循环 for循环(C++)
  7. html注册页面多选代码,利用HTML表单标签编写一个注册页面
  8. 一元线性回归Python实现
  9. 软件测试——测试流程重要性
  10. CodeSmith连接MySql数据库
  11. 手把手教你阿里云服务器搭建网站(超详细图文)
  12. FPGA与ASIC对比
  13. 辽宁聚能合创:抖音蓝色粉丝牌是什么等级?
  14. 大脑构造图与功能解析_大脑的结构和功能分区_详解人脑构造与功能
  15. AndroidStudio很卡怎么办?
  16. 'ContactForm' object has no attribute 'cleaned_data'
  17. Python 抓取淘宝联盟优惠券
  18. 利用JQuery实现HTML页面跳转
  19. pyinstaller打包时候遇到d3dcompiler_47.dll缺失解决办法
  20. win11正式版如何强行安装 Windows11正式版强行安装的步骤方法

热门文章

  1. java生成16位随机数_java中如何产生一个16位数字组成的随机字符串?谢谢各位了...
  2. 网页html 图片横向摆放,css实现多张图片横向居中显示的方法
  3. 直线的端点画垂线的lisp_【以课说法】线段、射线、直线
  4. 计算机编程老鸟的心得,java入门123——一个老鸟java学习心得.docx
  5. android实现电话功能实验报告,安卓开发实验报告-20210407005833.docx-原创力文档
  6. java二分查找递归_java学习之—递归实现二分查找法
  7. leetcode13. 罗马数字转整数
  8. 算法(18)-leetcode-剑指offer2
  9. 《Python Cookbook 3rd》笔记(1.12):序列中出现次数最多的元素
  10. linux mount 查看挂载目录,Linux下使用mount来挂载设备到目录