传送门

题意简述:大家在数轴上生活,公司在 s。

班车送所有人回家,有 n 个住处,第 i 个位置在 xi,居住了 pi 的人。

保证 xi 互不相同。

大家⼀起投票向前还是向后,如果票数相同就固定向数轴负方向,每个⼈是自私的,希望自己尽早回家。

(但是注意,虽然是自私的,并不⼀定投自己家的方向)

到家了必须下车(因为自私)

问大家都做最优决策的情况下,最后⼀个回家的人需要多久到家?

车速为 1。

this is an easy problem.

事实上,这题我们应该倒着思考,对于最后的两队人:最左边的和最右边的,如果最左边的不比最右边的少,那么无论如何投票,最后都会先走到最左边,再走到最右边。这样的话相当于最右边的人并没有选择权,因此他们应该将票投给左边来使左边的人都尽快回家然后使自己尽快回家。这样的话最右边的人的位置已经不重要了,我们可以直接将最右边的人与最左边的人合并,然后继续判断合并之后最左边的人和最右边的人的关系,直到所有人都位于起点的一侧直接全部接完就行了。

代码如下:

#include<bits/stdc++.h>
#define N 1000005
#define ll long long
using namespace std;
inline ll read(){
    ll ans=0;
    char ch=getchar();
    while(!isdigit(ch))ch=getchar();
    while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
    return ans;
}
ll n,s,ans,x[N],p[N];
int main(){
    n=read(),s=read();
    for(ll i=1;i<=n;++i)x[i]=read(),p[i]=read();
    ll l=1,r=n;
    while(l<=r){
        if(x[l]>=s){ans+=x[r]-s;break;}
        if(x[r]<=s){ans+=s-x[l];break;}
        ans+=x[r]-x[l];
        if(p[l]>=p[r])while(p[l]>=p[r]&&l<r)p[l]+=p[r--];
        else while(p[l]<p[r]&&l<r)p[r]+=p[l++];
    }
    printf("%lld",ans);
    return 0;
}

2018.07.12 atcoder Go Home(贪心)的更多相关文章

  1. 2018.07.12 atcoder Choosing Points(数学分析好题)

    传送门 一句话题意:给出n,d1,d2" role="presentation" style="position: relative;">n,d ...

  2. China Internet Conference(2018.07.12)

    中国互联网大会 时间:2018.07.12地点:北京国家会议中心

  3. 2018.07.20 atcoder Largest Smallest Cyclic Shift(贪心)

    传送门 题意:给你x个a,y个b,z个c,显然这些字符可以拼成若干字符串,然后求这些字符串中最小表示法表示出来的最大的那一个. 解法:贪心思想,用multiset维护现在拼成的字串,每次取一个最小的和 ...

  4. http://www.cnbc.com/2016/07/12/tensions-in-south-china-sea-to-persist-even-after-court-ruling.html

    http://www.cnbc.com/2016/07/12/tensions-in-south-china-sea-to-persist-even-after-court-ruling.html T ...

  5. 2018年12月8日广州.NET微软技术俱乐部活动总结

    吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...

  6. 2018.5.12 storm数据源kafka堆积

    问题现象: storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积. 排查: 1.查看stormUI, storm拓扑结构如下: 看现 ...

  7. Artificial Intelligence Computing Conference(2018.09.12)

    时间:2018.09.12地点:北京国际饭店会议中心

  8. China Cloud Computing Conference(2018.07.24)

    时间:2018.07.24地点:北京国家会议中心

  9. AI Summit(2018.07.19)

    AI Summit 时间:2018.07.19地点:北京丽都皇冠假日酒店

随机推荐

  1. javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题

    /* * js数学计算 add by yan */ /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较 ...

  2. jsfl 巧用获取jsfl绝对路径,导入配置文件,注意配置文件无法改变舞台宽高

    //获取jsfl下的AS3.xml配置文件的路径 var jsflURL_arr=fl.scriptURI.split("/"); jsflURL_arr.splice(jsflU ...

  3. as3 声明变量

    var a:int=0, b, c:Number=2; trace(a,b,c) /* 0 undefined 2 */ var a:int, b:uint, c:Number; var d:Stri ...

  4. Shiro权限总结

    参考学习地址   shiro 瞅完就会用(ssm+shiro)    Spring Shiro配置实现用户认证和授权 anon:它对应的过滤器里面是空的,什么都没做,另外.do和.jsp后面的*表示参 ...

  5. Haskell语言学习笔记(31)ListT

    Control.Monad.Trans.List 标准库中的 ListT 的实现由于有 bug,已经被废弃. list-t 模块 这里使用 list-t 模块中的 ListT. list-t 模块需要 ...

  6. Spring Boot中启动HTTPS

    一,生成https 的证书 1,在相应的根目录下 keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize -keyst ...

  7. web中的中文乱码处理

    1.页面设置pageEncoding="UTF-8" <%@ page contentType="text/html;charset=UTF-8" lan ...

  8. Go语言中cannot convert adminname (type interface {}) to type *: need type assertion的解决办法

    解决的办法是把string(adminname)替换为adminname.(string).其它类型也是类似.

  9. Spring简单获得实体类的实例, 使用ApplicationContext()方法的几点注意事项

    今天接触了Spring的初步用法, 感觉跟实例化实体类没啥区别, 像这种简单的代码还不如直接实例化来的方便, 这样使用Spring的话总共需要三个文件 第一个当然是一个实体类了, 定义好属性, get ...

  10. Ubuntu 分辨率更改 xrandr Failed to get size of gamma for output default

    sudo vim /etc/xorg.conf copy: Section "Monitor" Identifier "Monitor0" VendorName ...