请求处理问题
来源:互联网 发布:淘宝账号被冻结怎么办 编辑:程序博客网 时间:2024/06/06 14:23
问题描述:
说有一台机器,上面有m个储存空间。然后有n个请求,第i个请求计算时需要占R[i]个空间,储存计算结果则需要占据O[i]个空间(其中 O[i]<R[i])。问怎么安排这n个请求的顺序,使得所有请求都能完成。你的算法也应该能够判断出无论如何都不能处理完的情况。
题解:
假设可以满足所有请求,并且处理请求的顺序是:r1,r2,……r(n-1),r(n),那么存储完所有的请求结果后,剩余的存储空间为L= m-∑O[i]。
如果假设成立,必须满足:针对请求r(n),一定有L+O[r(n)]>=R[r(n)]。同理,针对r(n-1),一定有
L+O[r(n)] + O[r(n-1)] >= R[r(n-1)],依次类推。于是,证明假设成立就转化为:针对假设中的每一个请求r(i),都有L+∑O[r(n-j)]>=R[r(i)],其中i>=j>=0。相应的,原问题也就转化成从寻找这样的r(i)。
既然如此,从寻找r(n)开始,这时候有n个选择(R[1]~R[n]),那么选择哪一个呢?如上所说,我们选择的原则是满足L+O[r(n)]>=R[r(n)],即L>=R[r(n)]-O[r(n)]。所以将所有的选择按照R[r(n)]-O[r(n)]从小到大排序,每次选择时试探R[r(n)]-O[r(n)]最小的值,如果最小值都不能满足,那么已经证明假设不成立,否则继续探测n-1,n-2……1,直到出现不能满足的情况,或者证明假设成立。
时间复杂度:nlogn(事先的排序)+n
- 请求处理问题
- 请求处理问题 收藏
- 处理请求参数乱码问题
- 处理post请求乱码问题
- ASP.net 请求URL过长问题处理
- Spring MVC的处理请求流程问题
- HTTP请求同时处理证书问题
- 网络请求中文编码格式问题处理
- Servlet处理get请求中文乱码问题
- 大量syn请求处理的一些问题
- springmvc ajax请求处理跳转问题
- 网络请求特殊字符处理问题
- 集群下处理请求的时序问题
- request请求doGet处理中文乱码问题
- AJAX 请求出现编码问题处理过程
- 处理ajax请求session失效问题
- ASP.net 请求URL过长问题处理
- Ajax异步请求,中文乱码问题处理
- 内存泄露检测相关
- 矩阵类
- Effective Java 读书笔记(一)
- ACM程序&算法
- GDI+ / PNG 实现半透明窗口,正常情况下没有问题 将系统设置为16位色后UpdateLayeredWindow函数失败,GetLastError返回8(ERROR_NOT_ENOUGH_MEMORY)
- 请求处理问题
- Flex技术网站收录------持续追加中......
- ipc_perm 详解
- 关于gcc,libc等相关概念的理解
- 解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹出对话框问题
- Javascript实现HTML的字体缩放
- 正则表达式学习参考
- 请各位高手帮帮忙
- VS2005下QT学习笔记-OpenGL编程