问题标题: 酷町堂:买鱼

0
0
已解决
夏子健
夏子健
初级光能
初级光能

二分查找+sort排序

@栾峻岩

夏子健在2018-08-18 18:17:15追加了内容

那两个二分要用双重循环吗?能发第一个小代码吗


1
已采纳
高翊天
高翊天
初级守护
初级守护

首先你将每个商店的价格从小到大排个序(不细讲了),然后for (int i=1;i<=n;i++) 将每个酷町喵心中的价格当成原来待查找的数

首先找到最后一个小于等于带查找的数,然后如果找不到(abs函数为取绝对值的函数,在#include<cmath>中)就ans1=abs(当前酷町喵期待价格-第一个商店的价格);否则ans1=abs(当前酷町喵期待的价格-找到的那个数);

然后是找第一个大于酷町喵期待的价格,如果找不到,就ans2=abs(期待价格-最后一个商店的价格)(其实此处可以不用abs的但为了保险还是用下吧) ,否则就ans2=abs(当前酷町喵期待的价格-找到的数);

最后解我们用sum(初始为0)

sum=sum+max(ans1,ans2);

最后输出ans就可以了

0
0
我要回答