【CodeVS2744】养鱼喂妹纸

Description

在某岛国,大多数居民都是渔民,这个国家的所有城镇都沿直线分布在海边。渔民们捕获大量的海鱼,但就象世界上大多数的渔民一样,他们并不喜欢吃鱼,所以他们决定从天朝收养一些贫困家庭的女孩纸,让她们来帮着吃鱼,顺便(和谐),国家规定每个城镇收养的贫困妹纸数量必须相等,这样才能建设和谐社会。

一条又长又直的公路贯穿整个海岸将所有的城镇连接了起来,所以每个城镇(除去第一个和最后一个)都直接和相邻的两个城镇相连接。一个妹纸一年要吃掉一吨鱼(但是依然可以保持苗条),每个城镇捕获的鱼既可以在本地吃也可以运往其它城市吃,在运输过程中,每公里要上贡一吨鱼作为过路费。

已知每个城镇一年的捕鱼产量,并假设运输方案是最佳的,计算最多能收奍多少个妹纸。

Input

输入文件第一行包含一个整数N,其中1≤N≤100,000,表示城镇总数。

接下来的N行每行包含两个整数A和B,其中1≤A≤1,000,000,000,0≤B≤1,000,000,000,分别表示城镇的位置(坐标)和该城镇的捕鱼产量,所有城镇按其位置从小到大排序给出,注意问题一定存在正整数解。

Output

输出文件仅一行包含一个整数表示每个城镇最多能够收养的妹纸数量。

Sample Input

4

20 300

40 400

340 700

360 600

Sample Output

415

HINT

1≤A≤1,000,000,000,0≤B≤1,000,000,000,1≤N≤100,000

题解

二分答案+贪心验证,注意当前城市有剩余但是运费大于剩余数量的情况

zjk说大神说 二分写l<=r是最保险的,最后答案取l或者r (对于l、r取整数来说结束条件是l = r+1),具体取什么看题目

而不能取mid,因为mid等于l还是等于r是不能确定的。

(二分的范围是l~r,最后l=r+1,如果输出l,不就超出二分的范围了吗?

当l=r+1的时候,这个范围已经不合适了,但对于上一层来说,还是合理的)

#include<iostream>
#include<cstdio>
#define LL long long
#define N 100010
using namespace std;
LL n,ll,rr,mid;
LL a[N],s[N],d[N];
int main()
{
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        cin>>s[i]>>a[i];
        rr = max(a[i],rr);
    }
    for (int i=1;i<=n;i++) d[i] = a[i];
    while (ll<=rr)
    {
        for (int i=1;i<=n;i++) a[i] = d[i];
        LL trans = 0;
        mid = ll+rr>>1;
        for (int i=1;i<n;i++)
        {
            if (a[i]<mid)
            {
                a[i+1] = a[i+1] -(mid - a[i]) - (s[i+1]-s[i]);
            }
            if (a[i]>mid)
            {
                if (s[i+1] - s[i]< a[i]-mid)
                a[i+1] += (a[i] - mid-s[i+1]+s[i]);
            }
        }
        if (a[n]-mid<0)
            rr = mid -1;
        else if (a[n]-mid>0)
            ll = mid +1;
        else
            break;
    }
    cout<<ll-1;
} 
时间: 2024-10-13 18:15:49

【CodeVS2744】养鱼喂妹纸的相关文章

养鱼喂妹纸

2744 养鱼喂妹纸 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在某岛国,大多数居民都是渔民,这个国家的所有城镇都沿直线分布在海边.渔民们捕获大量的海鱼,但就象世界上大多数的渔民一样,他们并不喜欢吃鱼,所以他们决定从天朝收养一些贫困家庭的女孩纸,让她们来帮着吃鱼,顺便(和谐),国家规定每个城镇收养的贫困妹纸数量必须相等,这样才能建设和谐社会. 一条又长又直的公路贯穿整个海岸将所有的城镇连接了起来,所以每个城镇(除去第一

2744 养鱼喂妹纸

2744 养鱼喂妹纸 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 在某岛国,大多数居民都是渔民,这个国家的所有城镇都沿直线分布在海边.渔民们捕获大量的海鱼,但就象世界上大多数的渔民一样,他们并不喜欢吃鱼,所以他们决定从天朝收养一些贫困家庭的女孩纸,让她们来帮着吃鱼,顺便(和谐),国家规定每个城镇收养的贫困妹纸数量必须相等,这样才能建设和谐社会. 一条又长又直的公路贯穿整个海岸将所有的城镇连接了起来,所

养鱼喂妹纸(看我注释多萌(呵呵)啊)

#include<cstdio>#include<iostream>using namespace std;#define N 100001long long a[N],b[N],maxx;int n;bool check(long long x){ long long carry=0; for(int j=1; j<n; j++)//嘛,n个城镇啊~ { carry=carry+b[j]-x;//0.0 carry是干啥的? 貌似是记录比(哔)大或小的量 if(carry&

.net妹纸转Java---java环境的搭建,myeclipse10.0 的安装环境变量配置和破解

啦啦啦 ,因为公司项目需要,从我大火炉--大武汉被拖到了更大的火炉--大广西  其实一开始 我的内心是拒绝的. 但是我在大武汉呆了近2年木有出过远门,对, 生活除了眼前的苟且,还有远方的苟且.怀揣这样的理想的我 就这样愉快地来到了大广西,来实地感受下wuli大广西自治区的风土人情-------其实 昨晚下去超市有人跟我搭讪 我都没搭理的,我真不是一个傲娇的妹纸,是因为他们讲的方言 我根本听不懂 因为项目需要 不得不转从net 转Java 这个就不解释了  相信序猿果果和旭媛妹纸们都懂得滴.  

一个特别适合新手练习的Android小项目——每日一妹纸

介绍 每天更新一张精选妹纸图片,第一版目前已完成,本项目会持续更新,遇到任何问题欢迎与我联系^_^ 为什么说这是一个特别适合新手练习的小项目? 服务器API接口功能丰富且无访问次数限制 包含了常见的网络通信,数据缓存等功能 使用了流行的Realm,Retrofit,Glide,Butterknife等开源项目,方便新手学习他们的使用 遵循Material Design规则 示例 项目当然是开源的啦,源码请戳下面的链接 https://github.com/SparkYuan/Meizi ----

50.EasyGank妹纸App

50.EasyGank妹纸App 前言 基于MVP模式下 , RxJava+RxAndroid+Retrofit的组合 . RxJava RxAndroid Retrofit Okhttp Gson Glide Reservoir Github EasyGank ScreenShots

[来自妹纸的挑战]-展开/还原多层链表

前言: 适逢妹纸在复习,顺便见我也在学习,便问了这样一个问题[她是怎么想到这个的]. 有一个很多层的链表,嗯,双向的吧,然后每个节点还有个指针指向了它的子链表,单独的,如果有的话:同一层的子链表,嗯,也是双向链接的吧:然后怎么将它们比较快的变成只有一条主链表呢?关系还是保持不变的哦.对了,可以展开的话,顺便也还原回去吧... 为了不在妹纸面前怂,毅然决然拿起纸币就左图右画了起来,经过快二十分钟的左移右移,加上点必要代码,算是给妹纸解释好了,差点就跪了. 过程: 首先是双向的,那就好办多了,之前遇

新来的长腿程序猿妹纸

新来的刚毕业的妹纸有一双大长腿,于是她在公司年会出尽风采,公司的一些男生老员工没事献献殷勤,但很奇怪,没有很久,都又消失了- 新来的妹纸喜欢穿着破洞的牛仔裤,在办公室插着耳麦,一副自以为很酷的样子,老员工都按部就班穿着上班装,突然一个标新立异的出现,觉得特别青春,好像回到了自己刚毕业的时候- 新来的妹纸特别有活力,天天在加班,工作积极,一片朝气,而老员工多了一些暮色晨晨的气息,工作干完了就走,尽量给自己手头的工作不犯错,然后争取年中末考核有个好的绩效,奖金拿多点- 新来的刚毕业的妹纸特别喜欢学习

UESTC_秋实大哥与妹纸 2015 UESTC Training for Data Structures&lt;Problem F&gt;

F - 秋实大哥与妹纸 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 1500/1500KB (Java/Others) Submit Status 致中和,天地位焉,万物育焉.秋实大哥是一个追求中庸的人. 虽然秋实大哥的仰慕者众多,但秋实大哥不喜欢极端的妹纸.所以他想从所有仰慕自己的妹纸中挑选出一个符合中庸之道的. 每一个妹纸对秋实大哥的仰慕程度可以用一个整数ai来表示,秋实大哥想要找出这些数的中位数. 计算有限个数的数据的中位