题目链接:https://www.rqnoj.cn/problem/622

题意:

  一个机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。

  w[i][j]是从供应商j处购得的部件i的重量,c[i][j] 是相应的价格。

  试设计一个算法,给出总价格不超过d的最小重量机器设计。

题解:

  表示状态:

    dp[i][j] = min weight

    i:考虑到第i个零件

    j:当前花费

  找出答案:

    min dp[n][j] (0<=j<=d)

  如何转移:

    对于当前零件i,枚举不同的供应商j,转移到相应的下一个dp。

    dp[i+1][j+c[i][k]] = min dp[i][j] + w[i][k]

  边界条件:

    dp[0][0] = 0

    others = -1

AC Code:

 // state expresssion:
// dp[i][j] = min weight
// i: considering ith component
// j: present cost
//
// find the answer:
// min dp[n][j] (0<=j<=d)
//
// transferring:
// now: dp[i][j]
// dp[i+1][j+c[i][k]] = min dp[i][j] + w[i][k]
//
// boundary:
// dp[0][0] = 0
// others = -1
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX_N 1005
#define MAX_M 1005
#define MAX_D 1005
#define INF 10000000 using namespace std; int n,m,d;
int ans;
int w[MAX_N][MAX_M];
int c[MAX_N][MAX_M];
int dp[MAX_N][MAX_D]; void read()
{
cin>>n>>m>>d;
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
cin>>c[i][j];
}
}
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
cin>>w[i][j];
}
}
} void solve()
{
memset(dp,-,sizeof(dp));
dp[][]=;
for(int i=;i<n;i++)
{
for(int j=;j<=d;j++)
{
if(dp[i][j]!=-)
{
for(int k=;k<m;k++)
{
if(dp[i+][j+c[i][k]]==- || dp[i+][j+c[i][k]]>dp[i][j]+w[i][k])
{
dp[i+][j+c[i][k]]=dp[i][j]+w[i][k];
}
}
}
}
}
ans=INF;
for(int i=;i<=d;i++)
{
if(dp[n][i]!=-)
{
ans=min(ans,dp[n][i]);
}
}
} void print()
{
cout<<ans<<endl;
} int main()
{
read();
solve();
print();
}

RQNOJ 622 最小重量机器设计问题:dp的更多相关文章

  1. RQNOJ 169 最小乘车费用:水dp

    题目链接:https://www.rqnoj.cn/problem/169 题意: 给出行驶1-10公里的费用(所有车一样),可以倒车,问行驶n公里的最小费用. 题解: 大水题... (=´ω`=) ...

  2. FPGA最小系统分析与电路设计

    <FPGA最小系统分析与电路设计> 部分节选自<FPGA应用开发入门与典型.pdf > FPGA最小系统包括:FPGA芯片.下载电路.外部时钟.复位电路和电源. 如果使用NIO ...

  3. HDU4624 Endless Spin 【最大最小反演】【期望DP】

    题目分析: 题目是求$E(MAX_{i=1}^n(ai))$, 它等于$E(\sum_{s \subset S}{(-1)^{|s|-1}*min(s))} = \sum_{s \subset S}{ ...

  4. CS5216 设计于DP转HDMI转换器|DP转HDMI 1080P中继器 电平转化器开关设计方案与线路图

    CS5216是一款Displayport to hdmi 1080p音视频信号转换芯片,主要用于设计与开发DP转HDMI 转换器.中继器.电平转换器等产品当中.它支持交流和直流耦合TMDS信号高达1. ...

  5. P2066 机器分配 (DP+DP输出)

    题目描述 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值.其中M≤15,N≤10.分 ...

  6. NOIP1999邮票面值设计[搜索|DP]

    题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤40)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX之间的每一个邮资值都能得到 ...

  7. [NOIP1999提高] CODEVS 1047 邮票面值设计(dfs+dp)

    dfs出邮票的各种面值,然后dp求解. ------------------------------------------------------------------------------- ...

  8. 最小总代价 状压DP

    描述 n个人在做传递物品的游戏,编号为1-n. 游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位:下一个人可以传递给未接过物品的任意一人. 即物品只能经过同一个人一次 ...

  9. RQNOJ 328 炮兵阵地:状压dp

    题目链接:https://www.rqnoj.cn/problem/328 题意: 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队. 一个N*M的地图由N行M列组成(N≤100,M≤10), ...

随机推荐

  1. apache默认路径

    读启动文件 /etc/inid.d/httpd 默认web路径 /var/www/html inux下Apache PHP MYSQL 默认安装路径 apache:如果采用RPM包安装,安装路径应在 ...

  2. vs 已经加入了引用,编译还是提示没有加入引用

    已经加入了引用,可是.编译还是通只是. 原因:项目总体框架是.Net FramWork4.5,nep中的框架也是4.5.而编译只是的project是4.0. 解决的方法:将编译只是的项目框架改为4.5

  3. H5和CSS3新增内容总结

    CSS3选择器有哪些?答:属性选择器.伪类选择器.伪元素选择器.CSS3新特性有哪些?答:1.颜色:新增RGBA,HSLA模式 文字阴影(text-shadow.) 边框: 圆角(border-rad ...

  4. 高阶函数:filter()

    Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是 ...

  5. WINDOWS下的squid

    今天写这篇教程目的在于分享自己在WINDOWS主机下配置squid的方法.哪些地方写的不完善或是不完整或是需要修改的地方,大家可以提出.我会第一时间纠正.下面看正文部分.先提条件,您预安装配置squi ...

  6. PHP session回收机制(转)

    由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效.当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/sessi ...

  7. 封装CLLocationManager定位获取经纬度

    创建调用方法,在.h文件里 #import <Foundation/Foundation.h> @interface RMMapLocation : NSObject { void (^s ...

  8. java变参

    java变参是通过数组来实现的 Object[] addAll(Object[] array1, Object... array2)和Object[] addAll(Object[] array1, ...

  9. 字符串转化成十六进制输出StrToHex(Delphi版、C#版)

    //注意:Delphi2010以下版本默认的字符编码是ANSI,VS2010的默认编码是UTF-8,delphi版字符串事先须经过AnsiToUtf8()转码才能跟C#版得到的十六进制字符串显示结果一 ...

  10. 21-nginx单机1W并发优化

    一:优化思路 (1)建立socket连接 (2)打开文件,并沿socket返回.二:优化  (1) 修改nginx.conf 进程数量 默认是1024 改成20140 worker_rlimit_no ...