大牛代码
来源:互联网 发布:网络十大博客公司 编辑:程序博客网 时间:2024/06/05 21:56
#include<iostream>using namespace std;int N, K;int arr[10005];bool ok(int v){int index = 0;int ki = 0;int sumi = 0;while(index < N && ki < K){if(sumi + arr[index] <= v){sumi += arr[index];index ++;continue;}ki++;sumi = 0;}return ki < K;}int balance(int sum , int maxIter){int average = (sum + N - 1) / N;int left = average > maxIter ? average : maxIter; int right = sum;while (left <= right) {int middle = (left + right)/2;if(ok(middle))right = middle-1;else left = middle+1;}return left; }int main(){freopen("Leetinput.txt", "r", stdin);while(scanf("%d %d", &N, &K) != EOF){if ( N == 0 && K==0 )return 0;int sum = 0;int maxItem = 0;for(int i=0; i<N; i++){scanf("%d", &arr[i]);sum += arr[i];if(arr[i] > maxItem)maxItem = arr[i];}if( K == 1){printf("%d\n", sum);continue;}printf("%d\n", balance(sum, maxItem));}return 0;}
设M表示每台服务器的最长允许工作时间,则M的取值范围为【n个数中的最大者-->sum(n个数的和)】,从小到大枚举其中的每一个数,然后判断K台服务器能够把N个任务做完吗?第一个即为所求。但是这种效率很低,我们可以使用二分找到满足情况最小的那个。大牛代码如下:
- 大牛代码
- caffe 代码大揭秘
- 后台代码:大客户资料
- 大前端-代码优化
- 看了大牛的代码,感到自己的渺小
- 360的大牛MJ逆向的hotpatch代码
- 收藏大牛的代码(事件的原理是什么)
- 从大牛代码中发现的一个有趣算法。。
- UCF 大牛 Prof. Shah 课题组代码合集
- UCF 大牛 Prof. Shah 课题组代码合集
- 传说中,技术大牛博客中的一段JS代码
- UCF 大牛 Prof. Shah 课题组代码合集
- UCF 大牛 Prof. Shah 课题组代码合集
- UCF 大牛 Prof. Shah 课题组代码合集
- UCF 大牛 Prof. Shah 课题组代码合集
- 天天写业务代码,如何成为技术大牛?
- 天天写业务代码,如何成为技术大牛?
- 天天写业务代码,如何成为技术大牛?
- 写在离开学校前的话
- 使用 .NET 框架轻松开发完美的 Web 窗体控件
- uva 1486 - Transportation(最小费用流)
- Android温习:Android之Service与IntentService的比较
- 一起开始linux学习之旅
- 大牛代码
- VSTO之旅系列(四):创建Word解决方案
- CSMA/CD协议
- APUE学习笔记——第七章 进程环境
- hibernate连接oracle10g配置
- sphinx根据搜索字段权重设置
- 文件操作与类与职工工资
- CF 286B(Shifting-deque)
- 【转】斗地主AI设计