2018.07.12 atcoder Go Home(贪心)
传送门
题意简述:大家在数轴上生活,公司在 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(贪心)的更多相关文章
- 2018.07.12 atcoder Choosing Points(数学分析好题)
传送门 一句话题意:给出n,d1,d2" role="presentation" style="position: relative;">n,d ...
- China Internet Conference(2018.07.12)
中国互联网大会 时间:2018.07.12地点:北京国家会议中心
- 2018.07.20 atcoder Largest Smallest Cyclic Shift(贪心)
传送门 题意:给你x个a,y个b,z个c,显然这些字符可以拼成若干字符串,然后求这些字符串中最小表示法表示出来的最大的那一个. 解法:贪心思想,用multiset维护现在拼成的字串,每次取一个最小的和 ...
- 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 ...
- 2018年12月8日广州.NET微软技术俱乐部活动总结
吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...
- 2018.5.12 storm数据源kafka堆积
问题现象: storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积. 排查: 1.查看stormUI, storm拓扑结构如下: 看现 ...
- Artificial Intelligence Computing Conference(2018.09.12)
时间:2018.09.12地点:北京国际饭店会议中心
- China Cloud Computing Conference(2018.07.24)
时间:2018.07.24地点:北京国家会议中心
- AI Summit(2018.07.19)
AI Summit 时间:2018.07.19地点:北京丽都皇冠假日酒店
随机推荐
- word 2013 自动保存太慢,下面读条起码3分钟
该问题有可能是应用干扰或者安全设置问题导致的. 建议您尝试以下方法: 方法一: 尝试使用干净启动来暂时禁用计算机启动时所加载的第三方程序来进一步做测试: 如何在Windows 中执行干净启动步骤 具体 ...
- shelve模块使用说明
一种字典形式储存数据的方式 import datetime, shelve d = shelve.open('shelve_test.txt') info = {'age':22, 'job':'it ...
- VULKAN学习笔记-inter教学四篇
--交换链相关函数:实例层vkCreateWin32SurfaceKHRvkDestroySurfaceKHRvkGetPhysicalDeviceSurfaceSurportKHRvkGetPhys ...
- 迷你MVVM框架 avalonjs 1.3.9发布
本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能. ms-html内部不再使用异步 head元素中的avalon元素加入ms-skip指令 重构计算属性,现在超级轻 ...
- 软件工程导论复习 如何画系统流程图和数据流图 part2
数据流图(DFD) 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型.下 ...
- MySQL 语句的规范
- 吴裕雄 数据挖掘与分析案例实战(13)——GBDT模型的应用
# 导入第三方包import pandas as pdimport matplotlib.pyplot as plt # 读入数据default = pd.read_excel(r'F:\\pytho ...
- How to create a Virtual Machine in SmartOS
在SmartOS中,使用vmadm创建工具创建虚拟机. 此工具需要一个JSON有效负载,并使用输入JSON中指定的属性创建“kvm”或“joyent” brand zone. 正常输出是一系列单行JS ...
- tomcat发布webservice
编写后台代码: package test; import javax.jws.WebParam; import javax.jws.WebService; @WebService public cla ...
- poj1015 正解--二维DP(完全背包)
题目链接:http://poj.org/problem?id=1015 错误解法: 网上很多解法是错误的,用dp[i][j]表示选择i个人差值为j的最优解,用path[i][j]存储路径,循环次序为“ ...