博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asia Yokohama Regional Contest 2018 C题 - Arithmetic Progressions(思维)
阅读量:6904 次
发布时间:2019-06-27

本文共 1021 字,大约阅读时间需要 3 分钟。

题意

求所有人从电影院的座位上逃出去的最快时间

题解

显然,所有人从电影院的座位上逃出去的最快时间取决于最慢的那个人,那我们可以先把每个人最快(假设前面没人挡他)的逃生时间算出来,那么每个人都对应了一个时间,然后我们从前往后扫一遍时间,如果某时间点t上有x个人,下一时间点t+1就要加上这x-1的等待时间,如果t上没人,那么这一时间点可以容纳一个人,最后把最慢的那个人的逃生时间加上一路推过来的的等待时间就是答案

1 #define IO std::ios::sync_with_stdio(false); 2 #define bug(x) cout<
<<" "<
4 #define itor ::iterator 5 using namespace std; 6 #define pb push_back 7 typedef long long ll; 8 typedef double db; 9 const int N=6e5+5;10 int r,s,p,mx,mi=1e9;11 int a[N];12 int main(){13 scanf("%d%d%d",&r,&s,&p);14 for(int i=1;i<=p;i++){15 int x,y;16 scanf("%d%d",&x,&y);17 int v=r-x+1;18 if(y<=s)v+=s-y+1;19 else v+=y-s;20 mx=max(mx,v);21 mi=min(mi,v);22 a[v]++;23 }24 int k=0;25 for(int i=mi;i<=mx;i++){26 if(a[i]==0){27 if(k>0)k--;28 }29 else{30 k+=a[i]-1;31 } 32 }33 printf("%d\n",mx+k);34 }

 

转载于:https://www.cnblogs.com/ccsu-kid/p/10599484.html

你可能感兴趣的文章
[转]让工作变得高效而简单的10种方法
查看>>
艾伟_转载:Web网站缓存文件并发问题解决方案
查看>>
HTML5和CSS3参考资源与教程
查看>>
MVC框架 EasyJWeb 2.0 发布
查看>>
网民关注iPhone、Google、微软和安全
查看>>
Ruby on Rails 實戰聖經
查看>>
C#实现 获取指定字节长度 中英文混合字符串 的方法
查看>>
android:allowClearUserData
查看>>
NFS
查看>>
人情味,让你的内容脱颖而出
查看>>
hibernate+oracle返回的ID和数据库的ID不一致
查看>>
想象渲染:3优秀的D室内设计模型的设计案例
查看>>
线段树模板
查看>>
手动加载rvm
查看>>
ruby + nokogiri实现将天涯易读全帖转换成txt文件的功能
查看>>
Android应用程序中访问文件应用程序包中的资源(assets目录)
查看>>
MongoDB简介
查看>>
程序中处理一对多的数据
查看>>
MPU6050程序
查看>>
使用超棒超简单的自定义jQuery幻灯插件 Cycle2
查看>>