圆周舞蹈 (Standard IO)
2016-07-16 21:54
411 查看
Description
熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到奶牛B的距离为A顺时针走和逆时针走,到达B的较短路程。告诉你相邻两个奶牛间的距离,请你告诉奶牛两只最远的奶牛到底隔了多远。
题解:
用前缀和将环一分为二,再枚举答案。
代码:
var a:array[0..500000] of longint; n,min,max:longint; procedure init; var i,s:longint; begin readln(n); for i:=2 to n+1 do begin readln(s); a[i]:=a[i-1]+s; end; for i:=n+2 to 2*n do a[i]:=a[n+1]+a[i-n]; end; procedure main; var i,l,r,mid,x,y,s:longint; begin for i:=1 to n do begin l:=i;r:=n+i; min:=maxlongint; while l<=r do begin mid:=(l+r) div 2; x:=a[mid]-a[i]; y:=a[n+i]-a[mid]; if abs(x-y)<mid then begin mid:=abs(x-y); if x<y then s:=x else s:=y; if s>max then max:=s; end; if l=mid then break; if x<y then l:=mid else r:=mid; end; x:=a[r]-a[i]; y:=a[n+i]-a[r]; if abs(x-y)<min then begin min:=abs(x-y); if x<y then s:=x else s:=y; if s>max then max:=s; end; end; end; begin init; main; end.
相关文章推荐
- 从关系型数据库到非关系数据库
- android产品研发(二十一)-->android中的UI优化
- Maintain Aspect Ratio Mixin
- python 奇异值分解小程序
- 第二十五节,自定义函数作业
- 8086汇编语言自学经验分享 8080,8088,8086,80286,80386的地址线,数据线宽度
- Django初探(二)
- URAL 1091 Tmutarakan Exams(容斥原理)
- CL编译CPP文件
- 奶牛晒衣服 (Standard IO)
- ISBN号码
- Django初探(一)
- Java 方法的作用域中的内部类(不是在“外部类”的作用域中,当然,此处也没有相对的外部类)
- [C#]变量初始化问题:字段初始值无法引用非静态字段、方法或属性
- shell脚本学习---nohup
- poj 3169 BellmanFord—差分约束
- 宏定义的使用
- [Usaco2003 Open]Lost Cows(线段树)
- SICP 习题 (2.31)解题总结 : 通用的Square-Tree
- Java 接口interface的详解