博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSL 1072——砝码称重
阅读量:5239 次
发布时间:2019-06-14

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

Description

设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),

要求:
输入方式:a1 a2 a3 a4 a5 a6
(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)
输出方式:N
(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)

Input

Output

Sample Input

1 1 0 0 0 0

(注:下划线表示空格)
Sample Output

3 表示可以称出1g,2g,3g三种不同的重量。


最大只能为1000,

状态转移方程: f[j]:=max(f[j-k*v[i]]+k*v[i],f[j]);
1<=i<=6
1<=j<=1000
1<=k<=a[i]


代码如下:

const v:array[1..6] of longint=(1,2,3,5,10,20);var f,a:array[0..1000] of longint;     w:array[0..1000] of boolean;    i,j,k,n,total:longint;function max(a,b:longint):longint;  begin    if a>b then exit(a) else exit(b);end;begin  for i:=1 to 6 do read(a[i]);  for i:=1 to 6 do    for j:=1000 downto 1 do      for k:=1 to a[i] do        if j>=v[i]*k then begin f[j]:=max(f[j-k*v[i]]+k*v[i],f[j]); w[f[j]]:=true; end;    for i:=1 to 1000 do if w[i] then inc(total);  writeln(total);end.

转载于:https://www.cnblogs.com/Comfortable/p/8412313.html

你可能感兴趣的文章
Linux系统下 /etc/shadow 档案结构
查看>>
多线程---线程间的通信
查看>>
poj 1331 Multiply
查看>>
严重: 文档无效: 找不到语法。 at (null:2:19)
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
nodejs-Path模块
查看>>
P1107 最大整数
查看>>
EasyDarwin开源手机直播方案:EasyPusher手机直播推送,EasyDarwin流媒体服务器,EasyPlayer手机播放器...
查看>>
监控CPU和内存的使用
查看>>
Ubuntu14.04设置开机自启动程序
查看>>
bzoj3173[Tjoi2013]最长上升子序列 平衡树+lis
查看>>
ios app 单元测试 自动化测试
查看>>
年薪二十万
查看>>
Reading Notes : 180211 概述计算机
查看>>
强连通tarjan模版
查看>>
javascript_09-数组
查看>>
多进程与多线程的区别
查看>>
Linux 系统下用源码包安装软件
查看>>
HDU3232 Crossing Rivers 数学期望问题
查看>>