圆周舞蹈 (Standard IO)
来源:互联网 发布:视频剪辑加字幕软件 编辑:程序博客网 时间:2024/04/27 17:31
熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。
奶牛想知道两只最远的奶牛到底隔了多远。奶牛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.
3 0
- 圆周舞蹈 (Standard IO)
- 圆周舞蹈 (Standard IO)
- 圆周舞蹈
- July 16th 模拟赛C T3 圆周舞蹈 Solution
- 圆周舞蹈_纪中1745_二分查找
- Window (Standard IO)
- Party (Standard IO)
- 1326. Window (Standard IO)
- 遥控车 (Standard IO)
- Mobile Service (Standard IO)
- 舞台设置 (Standard IO)
- 拉力赛 (Standard IO)
- 车展 (Standard IO)
- 1328. Party (Standard IO)
- 三条线 (Standard IO)
- 绕圈跑 (Standard IO)
- 餐桌 (Standard IO)
- 直角三角形 (Standard IO)
- 8086汇编语言 8080,8088,8086,80286,80386的地址线,数据线宽度
- CL编译CPP文件
- 89. Gray Code
- URAL 1091 Tmutarakan Exams(容斥原理)
- Django初探(二)
- 圆周舞蹈 (Standard IO)
- 23. Merge k Sorted Lists
- const的使用
- python 奇异值分解小程序
- 【总结】ITOO在线编辑性能优化——多线程
- 8086汇编语言 BIOS的英文全称,中文名字
- scikit-learn 回归基础
- java网络编程(上)
- 奶牛排队 (Standard IO)