最小重量机器设计问题
来源:互联网 发布:双代号施工网络计划 编辑:程序博客网 时间:2024/06/08 07:23
#include <iostream>#include <fstream>using namespace std;const int INF = 100000;const int MAX = 50;int c[MAX][MAX];int w[MAX][MAX];int bestx[MAX];int x[MAX];int n, m, d; //部件个数,供应商数,最大总价格int cp = 0;int bestw = INF;int cw = 0;void backtrack(int i){ if(i>n) { if(cw < bestw) { bestw = cw; for(int r=1; r<=m; r++) bestx[r] = x[r]; } } else for(int j=1; j<=m; j++) //供应商 { x[i] = j; cw += w[i][j]; cp += c[i][j]; if(cp <= d && cw <bestw) backtrack(i+1); cw -= w[i][j]; cp -= c[i][j]; x[i] = 0; }}int main(){ ifstream fin("最小重量机器设计.txt"); cout << "输入部件个数:"; fin >> n; cout << n; cout << "\n输入供应商个数:"; fin >> m; cout << m; cout << "\n输入最大总价格:"; fin >> d; cout << d; cout << "\n输入价格矩阵:\n"; int i, j; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { fin >> c[i][j]; cout << c[i][j] << " "; } cout << endl; } cout << "\n输入重量矩阵:\n"; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { fin >> w[i][j]; cout << w[i][j] << " "; } cout << endl; } backtrack(1); cout << "\n最小重量为:" << bestw; cout << "\n每个部件的供应商为:\n" ; for(i=1; i<=n; i++) cout << bestx[i] << " "; cout << endl; cout << endl; fin.close(); return 0;}
0 0
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小机器重量设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题
- 最小重量机器设计问题 java实现
- SDIBTOJ1350-最小重量机器设计问题
- SDIBT 1350 最小重量机器设计问题
- 回顾下最小重量机器设计问题
- 算法 最小重量机器设计问题
- 最小重量机器设计问题 回溯法
- IOS获取当前时区时间,并截取年月日输出字符串
- zookeeper 终端命令常用
- zip命令和unzip命令
- 049 - Group Anagrams
- OkHttp完全解析(九)源码解析二
- 最小重量机器设计问题
- 用sqlplus为oracle创建用户和表空间
- gitlab的自动备份经历
- 以太网知识1:网卡初步认识
- codeforces 601B (单调栈)
- button同时多选,同时取消选择
- Videoview 在线播放
- 050 - Pow(x, n)
- 给easyui的datebox控件添加清空按钮