最小重量机器设计
来源:互联网 发布:网络银行交易规模 编辑:程序博客网 时间:2024/04/29 01:21
Description:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。设w[i][j]是从供应商j处购得的部件i的重量,c[i][j]是相应的价格。试设计一个算法,给出总价格不超过d的最小重量机器设计。
Input:3 3 4 //m, n, d
1 2 3 //c[i][j]
3 2 1
2 2 2
1 2 3 //w[i][j]
3 2 1
2 2 2
Output:4 //最小价格
1 3 1 //厂家路径
以下代码段代码精简~注释十分详细~为了少写代码还是动了些脑袋的~欢迎纠错~
/* * ===================================================================================== * * Filename: MinMachineWeight.cpp * * Description: * * Version: 1.0 * Created: 2015年12月18日 12时17分53秒 * Revision: none * Compiler: g++ * * Author: lafee, wisdomandmircle@gmail.com * Company: Class 1301 of Software Engineering * * ===================================================================================== */#include<iostream>#define N 1000using namespace std;intn, m, d, cp = 0, cw = 0, sum = 0 ;int c[N][N], w[N][N], path[N] ;bool CalMinMacWeight(int i){ if( i > n ){ if( cw < sum ) sum = cw ; return true ;//已找到最优解,保证path[N]不被改变 } for( int j = 1; j <= m; j++ ){ cw += w[i][j] ; cp += c[i][j] ; if( cw < sum && cp <= d ) if( CalMinMacWeight( i + 1 ) ) { path[i] = j ;//记录当前所选厂家 return true ;//结束当前遍历 } cw -= w[i][j] ; cp -= c[i][j] ; } return false ;}int main(){ cin>>n>>m>>d;/*n:部件个数 *m:厂家个数 *d:最大承受价格(总价) */ for( int i = 1 ; i <= n ; i++ )//第i个部件 for( int j= 1 ; j <= m ; j++ ) //第j个厂家 cin >> c[i][j] ;//价格 for( int i = 1 ; i <= n ; i++ ) { for( int j = 1 ; j <= m ; j++ ) cin >> w[i][j] ;//质量 sum += c[i][1] ;//sum以第一个厂家为初始 } CalMinMacWeight(1) ; cout << sum << endl ; for( int i = 1; i <=m ; i++ ) cout << path[i] << " " ; return 0 ;}
2 0
- 最小重量机器设计
- 最小重量机器设计
- c# 最小重量机器设计
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小机器重量设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题 java实现
- SDIBTOJ1350-最小重量机器设计问题
- SDIBT 1350 最小重量机器设计问题
- UIViewController全部API的学习。
- windows下hiredis使用
- Asp.net 生成 导出 Excel 下载
- devise+cancancan+rolify入门
- 第四章 Controller接口控制器详解(6)
- 最小重量机器设计
- zeromq模式介绍
- i7vpn教你怎么上facebook、注册instagram账号
- 仿ios日期选择器
- 奇怪编译问题 FLOAT_REGS
- swift字符串相关用法速查表
- 第四章 Controller接口控制器详解(7)
- redis如何监控
- U盘装完系统之后磁盘容量变小解决办法