为什么要对a[i]/b[i]排序?

我想的是先对b从大到小排序,b一样则a小的先做,错在哪里呢?
bool ju(struct ti& l,struct ti& r)
{  if(r.b>l.b)return true;  else if(r.b==l.b)return r.a<l.a;  else return false; }


全部评论
排序就是看相邻两项谁先谁后, 对于i和 j,假设i在前j在后,j在等待i的过程中就会产生a[j]*b[i]的疲劳 如果j在前i在后,会产生a[i]*b[j]的疲劳 所以排序要return a[j]*b[i]>a[i]*b[j]
11
送花
回复 分享
发布于 2019-01-27 01:41
若结构体A在前,B在后; A题时的疲劳值:time1*(sum-dif1) B题时的疲劳值:time2*(sum-dif1-dif2) 若结构体A在后,B在前: B题时的疲劳值:time2*(sum-dif2) A题时的疲劳值:time2*(sum-dif1-dif2) 由对比可知后处的疲劳值是相同的,所以只要比较前处的疲劳值即可:即差值小于0—— -time1*dif1<-time*dif2;
点赞
送花
回复 分享
发布于 2019-01-28 14:00
秋招专场
校招火热招聘中
官网直投
2 999999 1 5 2
点赞
送花
回复 分享
发布于 2019-01-26 23:05

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务