社区
数据结构与算法
帖子详情
怎样用贪心算法解这道题,目前我只想到蛮力穷举(急!)
nintendo_dskay
2008-04-15 12:13:27
某公司的服务窗前有n个顾客,设顾客i对公司的重要性为wi,对其服务的时间为ti,服务完顾客i的时间为ci
设计一种算法使得wi*ci的求和sum(i=1~n)最小
如:w1=1,t1=1;
w2=2,t2=3;
w1*t1+w2*(t1+t2)=9 < w2*t2+w1(t1+t2)=10
故sum=9;
用贪心算法如何对此求解?
...全文
222
6
打赏
收藏
怎样用贪心算法解这道题,目前我只想到蛮力穷举(急!)
某公司的服务窗前有n个顾客,设顾客i对公司的重要性为wi,对其服务的时间为ti,服务完顾客i的时间为ci 设计一种算法使得wi*ci的求和sum(i=1~n)最小 如:w1=1,t1=1; w2=2,t2=3; w1*t1+w2*(t1+t2)=9 < w2*t2+w1(t1+t2)=10 故sum=9; 用贪心算法如何对此求解?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nealxhf
2008-04-15
打赏
举报
回复
?
按你上面的公式
w1*t1+w2*(t1+t2)< w2*t2+w1(t1+t2)
直接可以得到
左边w2*t1
右边w1*t2
就是比较这两个大小就可以了啊
不过不是很明白你的意思
时间有什么限制没有?
为什么w2要乘t1+t2?
nintendo_dskay
2008-04-15
打赏
举报
回复
呵呵 csdn上的高手就是多 谢谢tailzhou的解答 20分送上
大王派我去巡山
2008-04-15
打赏
举报
回复
晕!是按照wi/ti降序排序,taizhou说的是。
这两天尽犯迷糊了。
tailzhou
2008-04-15
打赏
举报
回复
那么交换前:
wi*(t0+ti)+w(i+1)*(t0+ti+t(i+1))
交换后:
w(i+1)*(t0+t(i+1))+wi(t0+ti+t(i+1)) //漏了个括号
tailzhou
2008-04-15
打赏
举报
回复
dlyme没看仔细,lz给的例子就是一个反例;
应该是按照wi/ti降序排序;
下面给个简要的证明:
假设不按照wi/ti降序排序的序列w0,w1,w2....wn是一个最优的调度序列;那么必定存在一个连续子序列w(i),w(i+1),有w(i+1)/t(i+1) > w(i)/t(i);
现在分析交换w(i),w(i+1)的次序后的结果
因为交换前后除 i,i+1外,其他任务的位置保持不变,所以只需要分析i,i+1的变化即可
不妨假设前i-1个任务花费的时间为t0;
那么交换前:
wi*(t0+ti)+w(i+1)*(t0+ti+t(i+1))
交换后:
w(i+1)*(t0+t(i+1)+wi(t0+ti+t(i+1))
去掉公共项:wi*t0+wi*ti+w(i+1)*t0+w(i+1)*t(i+1),不改变两式的大小关系;
就简化为:
交换前:
w(i+1)*ti
交换后:
wi*t(i+1)
同时除以ti*t(i+1),因为ti*t(i+1)>0,所以也不改变两式的大小关系
就简化为:
交换前:
w(i+1)/t(i+1)
交换后:
wi/ti;
由于wi/ti<w(i+1)/t(i+1),那么交换后的总和必定比交换前小,是一个更优的序列,与假设矛盾;
得证!
大王派我去巡山
2008-04-15
打赏
举报
回复
题目已经提示用贪心算法了。
按Wi由高到低排序,重要性越高的大爷越先伺候。
算法设计
蛮力
法 分治法 动态规划
贪心算法
分支限界法 回溯法 近似算法 减制法
算法设计
蛮力
法 分治法 动态规划
贪心算法
分支限界法 回溯法 近似算法 减制法
贪心算法
和动态规划的区别与联系
贪心算法
和动态规划.pdf
贪心算法
和动态规划的区别与联系
贪心算法
和动态规划.pdf
贪心算法
解
0-1背包问题
贪心算法
解
决0-1背包问题,基础算法实现,可以运行
贪心算法
介绍文档.ppt
贪心算法
介绍文档.ppt
经典 算法思想
穷举
法 高精度 动态规划 回溯 贪心 排列组合 排序
穷举
法 高精度 动态规划 回溯 贪心 排列组合 排序
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章