最大值最小化问题
来源:互联网 发布:刷脸解锁软件 编辑:程序博客网 时间:2024/06/08 07:32
问题描述可参考最大值最小化问题,问题在刘汝佳老师的算法竞赛入门经典书上的p151页,核心算法是二分法猜最大值,猜对了继续小化,猜错了增大数字,初始左值为序列第一个元素值,右值为序列和。
猜对:就是从右向左近尽量在满足<=x(x为猜测值)的条件下划分数组元素到一个子序列,同时要保证有给定的序列数(每个序列至少一个元素)
下面是我的C++实现代码
#include<iostream>using namespace std;#define N 1000000int a[N];int search_min(int n,int k){int sum=0;for (int i = 0; i < n; i++)sum += a[i];int x = a[0], y = sum;while (1){int s = 0, sum = a[0], i;int mid = x + (y - x) / 2,max,flag = 0;for (i = 1; i < n; i++){if (sum <= mid&&sum + a[i] > mid){if (!flag){ flag = 1; max = sum; }if (sum>max) max = sum;sum = a[i]; s++;}else { sum += a[i]; }}if (s <= k - 1){if (sum > max) max = sum; y = max;//通过y来获取并优化解。}else if(x!=mid) x = mid ;else break;//如果发现错误答案并且和左值相同则退出查找。}return y;}int main(){int n,k;cin >> n >> k;for (int i = 0; i < n; i++)cin >> a[i];cout << search_min(n,k) << endl;//system("pause");return 0;}
0 0
- 最大值最小化问题
- 最大值最小化问题
- 最大值最小化问题
- 最大值最小化问题
- 最大值最小化问题
- 二分法解决最大值最小化问题
- 二分法解决最大值最小化问题
- UVa 714 - Copying Books,最大值最小化问题
- UVa11413 - Fill the Containers(最大值最小化问题)
- Copying Books(最大值最小化问题)
- Uva 714Copying Books,(最大值最小化问题)
- uva--714+二分(最大值最小化问题)
- 二分答案方法 — 最大值最小化问题
- 最大值最小化问题——分治
- 最大值最小化
- 最大值最小化
- 最大值最小化
- 最大值最小化
- MongDB 基本简介
- Flex4.6 Pop弹出窗口中文(汉字)输入发问题(弹出的对话框不支持中文录入 )
- ubuntu14.04使用--字体
- 什么时候用堆,什么时候用栈?
- 如何用RE或者其他软件修改手机CPU的信息
- 最大值最小化问题
- mysql 表的编码问题
- iOS应用程序内购/内付费(二)
- Android Intent的用法
- 1月15日 web第一天—发布新项目
- 输入坐标和输出坐标——图片框上动态加载按钮及响应事件
- 线程池
- 十六、用函数求最大公约数和最小公倍数
- cookielib和urllib2模块相结合模拟网站登录