ITAT 某届决赛的一道题
来源:互联网 发布:恢复软件finaldata 编辑:程序博客网 时间:2024/05/22 03:43
import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.TreeMap;/* * 1、 某企业在未来的12个月要研究一种新产品,新产品的研制需要四个阶段, * 每个阶段都可用慢、正常、快等三种速度进行,时间和成本如下表所列。 * 理论研究 试验阶段 政府批准 销售 * 慢 5/5 3/6 6/1 5/8 * 正常 4/7 2/8 4/1 4/10 * 快 2/10 1/12 2/3 3/15 * * 说明:单位(月/万元),时间按月,成本按万元为单位。 * 例如:5/5代表5个月,5万元;4/7代表4个月,7万元。 * 该企业准备在12个月内花费最少的费用就可以有新产品。 * 问:* (1)请给出最佳方法或算法。
* (2)编程实现最佳算法。
* (3)达到同一目标的次佳方法或算法是什么?
*/public class ITATtest2{public static void main(String[] args){/* 储存表中数据 * 建立三个二维数组 分别储存慢 , 正常 , 快 的时间和费用 */int[][] slow = {{5, 5}, {3, 6}, {6, 1}, {5, 8}}; int[][] nomal = {{4, 7}, {2, 8}, {4, 1},{4, 10}};int[][] fast = {{2, 10}, {1, 12}, {2, 3}, {3, 15}};// 储存数组 用于循环
List<int[][]> list = new ArrayList<int[][]>();list.add(slow);list.add(nomal);list.add(fast);Map<String, Integer> result = new TreeMap<String, Integer>();//循环四次 实现全部排列 for(int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){for(int n = 0; n < 3; n++){for(int m = 0; m < 3; m++){ int[][] first = list.get(i); int[][] second = list.get(j); int[][] third = list.get(n); int[][] fourth = list.get(m); //总共时间 int monthCount = first[0][0] + second[1][0] + third[2][0] + fourth[3][0]; if(monthCount > 12) { continue; } else { // 总共费用 int cost = first[0][1] + second[1][1] + third[2][1] + fourth[3][1]; // 慢、中、快安排 String method = String.valueOf(i) + String.valueOf(j) + String.valueOf(n) + String.valueOf(m) ; result.put(method, cost); } }}}}System.out.println(result);// 实现后续。。 输出结果 (后面的没实现)}}
上面是我实现的代码 , 我的思路是这样的:
首先先把时间很费用用二维数组储存 。然后把数组加入一个List 集合中 用于后面的循环, 用for 循环把所有可能的组合都罗列出来! 通过判断时间是否超过12个月来首次筛选! 结果放入一个map中! (说明: map中的key 就是选用方法, 其中第一位 0 1 2 代表理论研究阶段选的是慢 正常 快 中的一种 , 第二位 0 1 2 代表实验阶段选的是 慢 正常 快 中的一种。。以此类推。。)
最后输出map 。后来的排序我就没去实现了 !
但是我觉得我这个方法欠缺什么, 数据量大的时候不好用 而且扩展性差 !
不知道有没人有更好的思路,望能拿来分享一下!
- ITAT 某届决赛的一道题
- 第五届全国ITAT的一道决赛试题-我的解法
- 一道简单的itat竞赛题
- ITAT比赛上的一道C语言算法题
- ITAT 第九届 模拟题(江西赛区决赛) C语言程序设计 参考答案
- 第四届全国ITAT教育工程就业技能大赛决赛试题----Java程序设
- 第三届全国ITAT教育工程就业技能大赛决赛试题----Java程序设
- 去广工考ITAT的photoshop
- itat的预赛
- ITAT模拟题
- ITAT 第五届c复赛b卷附加题答案
- 蓝桥杯java第五届决赛第一题--国王的遗产
- 第六届决赛真题
- 第五届ITAT C语言预赛试题五点我想不到的
- 去广工考ITAT的photoshop(复试篇)
- ITAT预赛后,系统的提醒
- ITAT 第九届 模拟题 C语言程序设计 参考答案(个人答案 仅供参考)
- 蓝桥杯--第七届决赛:愤怒的小鸟
- DFS入门
- 最近一直在搞Facebook的应用
- android的SAFE MODE(安全模式)
- Mysql数据库下载及安装
- Android根据Button状态(normal,focused,pressed)显示不同背景图片
- ITAT 某届决赛的一道题
- sendmail for linux as5
- 正则表达式匹配空行
- 关于这段时间的一点杂谈
- 地址解析失败时搜索地址添加Maker
- XML 观察: BEEP 概述
- PE文件-分析vc示范所有代码[不包含EXPORT TABLE]
- CTO俱乐部-移动开发技术沙龙 次世代人机交互接口开发及应用开发
- 百度地图 定位到当前城市