博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dp学习笔记4
阅读量:6219 次
发布时间:2019-06-21

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

砝码称重:

View Code
1 /* 2 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),用他们能称出的重量的种类数。 3 */ 4 /* 5 输入: 6 a1  a2  a3  a4  a5  a6 7 (表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个,中间有空格)。 8 */ 9 /*10 样例输入:11 1 1 0 0 0 012 正确输出:13 314 */15 //分析:把问题稍做一个改动,已知a1+a2+a3+a4+a5+a6个砝码的重量w[i], w[i]∈{ 1,2,3,5,10,20}16 //其中砝码重量可以相等,求用这些砝码可称出的不同重量的个数.17 //这样一改就是经典的0/1背包问题的简化版了,求解方法完全和上面说的一样18 //这里就不多说了,只是要注意这个题目不是求最大载重量,是统计所有的可称出的重量的个数。19 20 21 #include
22 #include
23 #include
24 using namespace std;25 26 int main(){27 int w[6]={
1,2,3,5,10,20};28 int d[6];29 int dp[1001];30 memset(dp,0,sizeof(dp));31 int x;32 for(int i=0;i<6;i++){33 scanf("%d",&x);34 d[i]=w[i]*x;35 }36 for(int i=0;i<6;i++){37 for(int j=1000;j-w[i]>=0;j--){38 dp[j]=max(dp[j],dp[j-d[i]]+d[i]);39 }40 }41 printf("%d\n",dp[1000]);42 return 0;43 }

 

转载地址:http://ggaja.baihongyu.com/

你可能感兴趣的文章
rand(5) -> rand(7)
查看>>
SEO优化
查看>>
oracle10~11g在centos5~6版本上安装整体总结如下
查看>>
opencv配置(转)
查看>>
Spring Junit测试(非web,即不包含Controller测试)
查看>>
译文——The habits of highly successful people
查看>>
常见CSS与HTML使用误区
查看>>
模板类与类模板、函数模板与模板函数等的区别
查看>>
使用XPath查询带有命名空间(有xmlns)的XML(转)
查看>>
FastCgi与PHP-fpm之间是个什么样的关系
查看>>
对Navicat for MySQL 中1045错误的解决办法
查看>>
log日志
查看>>
使用CSS渐变
查看>>
ASP.NET ViewState详解
查看>>
阿里 Maven仓库
查看>>
Python学习之==>正则表达式
查看>>
My97DatePicker时间控件使用方法
查看>>
c# 线程基础
查看>>
各类杀软对应的进程名
查看>>
推荐一些socket工具,TCP、UDP调试、抓包工具 (转载)
查看>>