贪心法——乘船问题
来源:互联网 发布:哈尔滨华德学院网络科 编辑:程序博客网 时间:2024/05/11 01:28
贪心法——乘船问题
乘船问题。有
n 个人,第i 个人重量为wi 。每艘船的最大载重量均为C ,且最多只能乘两个人。用最少的船装载所有人。
贪心思路:每次取最轻值
乘船问题实现算法
// 贪心法// 乘船问题void boat(float *a, int n, float C) { sort(a, a + n); int i = 0; int j = n - 1; int boatSum = 0; while(i <= j) { if(i == j) { cout << "组合为:" << a[i] << endl; boatSum++; break; } if(a[i] + a[j] <= C) { cout << "组合为:" << a[i] << " " << a[j] << endl; boatSum++; i++; j--; } else { cout << "组合为:" << a[j] << endl; boatSum++; j--; } }}
测试主程序
#include <iostream>#include <algorithm>using namespace std;// 贪心法// 乘船问题void boat(float *a, int n, float C) { sort(a, a + n); int i = 0; int j = n - 1; int boatSum = 0; while(i <= j) { if(i == j) { cout << "组合为:" << a[i] << endl; boatSum++; break; } if(a[i] + a[j] <= C) { cout << "组合为:" << a[i] << " " << a[j] << endl; boatSum++; i++; j--; } else { cout << "组合为:" << a[j] << endl; boatSum++; j--; } }}int main() { while(true) { // n个人 int n; cout << "请输入人的总数(0退出):"; cin >> n; if(!n) { break; } float C; cout << "请输入船的最大载重量:"; cin >> C; float a[n]; for(int i = 0; i < n; i++) { cout << "第" << i + 1 << "个人的重量为:"; cin >> a[i]; } cout << "使用最少船的组合和总船数为:" << endl; boat(a, n, C); } return 0;}
输出数据
请输入人的总数(0退出):5请输入船的最大载重量:5第1个人的重量为:1第2个人的重量为:2第3个人的重量为:3第4个人的重量为:4第5个人的重量为:5使用最少船的组合和总船数为:组合为:5组合为:1 4组合为:2 3请输入人的总数(0退出):5请输入船的最大载重量:5第1个人的重量为:1第2个人的重量为:5第3个人的重量为:5第4个人的重量为:5第5个人的重量为:5使用最少船的组合和总船数为:组合为:5组合为:5组合为:5组合为:5组合为:1请输入人的总数(0退出):0Process returned 0 (0x0) execution time : 14.700 sPress any key to continue.
0 0
- 贪心法——乘船问题
- 贪心法——乘船问题
- 贪心法:乘船问题
- ACM:贪心法:乘船问题。
- 经典贪心乘船问题
- 乘船问题(贪心)
- 贪心算法_乘船问题
- 小白书贪心之乘船问题
- 乘船问题(贪心小白书)
- 8.4.3(乘船问题_简单贪心)
- C++贪心算法之乘船问题
- 高效算法设计_贪心法(最优装载问题,部分背包问题,乘船问题)
- 背包问题(乘船)
- NYOJ 71 独木舟上的旅行 贪心算法 之 乘船问题
- NYOJ 乘船问题+经典贪心+轻的和重的搭配
- 算法竞赛入门经典:第八章 高效算法设计 8.16贪心之乘船问题
- HDU1257 最少拦截系统 贪心算法 (多人乘船问题)水题
- HDU1257 最少拦截系统 贪心算法 (多人乘船问题)水题
- Minimum Spanning Tree
- 沉浸式状态栏
- UVa 12955 Factorial
- android 跨进程通讯详解
- JSON入门与实战 —— JavaScript、Java与JSON互转
- 贪心法——乘船问题
- android 拍照,存储在指定目录下核心代码
- 系统分析员考试复习笔记-7:第七章 企业信息化战略与实施
- Validate Binary Search Tree
- 利用NPOI组件读写XLS文件
- Android 应用签名工具----酷传
- 自定义圆形ImageView控件
- robots.txt 文件写法大全
- 判断设备终端是pc还是移动端