[NOIP模拟赛][并没有用二分][乱搞AC]
圆圈舞蹈
[问题描述]
熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。
奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到B的距离为A顺时针走和逆时针走,到达B的较短路程。告诉你相邻两个奶牛间的距离,请你告诉奶牛两只最远的奶牛到底隔了多远。
[输入]
第一行一个整数N,表示有N只奶牛。(2<=N<=100000)
接下来2~N+1行,第i行有一个数,表示第i-1头奶牛顺时针到第i头奶牛的距离。
(1<=距离<=maxlongint,距离和<=maxlongint)
第N+1行的数表示第N头奶牛顺时针到第1头奶牛的距离。
[输出]
一行,表示最大距离
[样例]
circle.in
5
1
2
3
4
5
circle.out
7
[样例解析]
Circle.out所有奶牛i到j之间的距离和到达方式(顺为顺时针,逆为逆时针)如下:
1 |
2 |
3 |
4 |
5 |
|
1 |
0 |
1(顺) |
3(顺) |
6(顺) |
5(逆) |
2 |
1(逆) |
0 |
2(顺) |
5(顺) |
6(逆) |
3 |
3(逆) |
2(逆) |
0 |
3(顺) |
7(顺) |
4 |
6(逆) |
5(逆) |
3(逆) |
0 |
4(顺) |
5 |
5(顺) |
6(顺) |
7(逆) |
4(逆) |
0 |
[Solution]
这道题网上全是二分做的,复杂度差不多都是O(nlogn)。但是这道题乱搞可以搞到O(n)之间。
首先处理一遍前缀和。定义左右端点都为1,然后不断右移右端点,max_len=max(max_len,sum[R]-sum[L]),直到左右端点间距大于环长的一半。当间距大于环长的一半时,将左端点右移缩小区间,max_len=max(max_len,tot-(sum[R]-sum[L])),直到左端点到右端点的间距不大于环长的一半。这样最后得到的max_len就是答案。
贴AC代码:
#include <cstdio>
#include <algorithm>
using namespace std;
int N,L=,R=;
long long int tot,max_len=;
long long int data[],sum[],save[];
int main(){
scanf("%d",&N);
for(int i=;i<=N;++i) scanf("%lld",&data[i]),tot+=data[i],sum[i]=sum[i-]+data[i];
while(L<=R&&R<=N){
long long int d=sum[R]-sum[L];
if(d<=tot/) {++R; max_len=max(max_len,d);}
else {++L; max_len=max(max_len,tot-d);}
}
printf("%lld",max_len);
return ;
}
二分须谨慎,暴力保平安。
[NOIP模拟赛][并没有用二分][乱搞AC]的更多相关文章
- 【NOIP模拟赛】与非 乱搞
biubiu~~~ 正解是线段树维护真值表,但是我觉得对于这道题来说乱搞就够了....... 我们发现如果我们把每一个数都一开始取反就会发现对于最后结果来说 x=x^1,x nand x=x|x ,x ...
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)
A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...
- NOIP模拟赛-2018.11.7
NOIP模拟赛 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 如果用命令行编译程序可以发现没加头文件之类的错误. 编译之前另存一份,听说如果敲 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 10.17 NOIP模拟赛
目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...
- Nescafe #29 NOIP模拟赛
Nescafe #29 NOIP模拟赛 不知道这种题发出来算不算侵权...毕竟有的题在$bz$上是权限题,但是在$vijos$似乎又有原题...如果这算是侵权的话请联系我,我会尽快删除,谢谢~ 今天开 ...
- NOI.AC NOIP模拟赛 第一场 补记
NOI.AC NOIP模拟赛 第一场 补记 candy 题目大意: 有两个超市,每个超市有\(n(n\le10^5)\)个糖,每个糖\(W\)元.每颗糖有一个愉悦度,其中,第一家商店中的第\(i\)颗 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
随机推荐
- dpkg.cfg
- parameter localparam define的区别
`define 语法格式 `define A 12 //注意不加:不能忘记" ` " 作用区域 在整个工程中均有效,因为它是可以跨模块的定义 parameter 和 localpa ...
- ssh 免交互登录 ,远程执行命令脚本。
##免交互SSH登录auto_login_ssh () { expect -c "set timeout -1; spawn -noecho ssh -o ...
- 原始套接字--traceroute
traceroute, 也就是 trace route,跟踪路由.这个程序最早是Van Jacobson实现的.源码在网上可以找到,不过我还没有去找.是IP路由过程中对数据包TTL(Time to L ...
- HDU 3775 Chain Code pick定理
pick定理:一个计算点阵中顶点在格点上的多边形面积公式:S=a+b÷2-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积. 思路:http://blog.csdn.net ...
- update-database -script
update-database -script 更新脚本生成失败? 项目选择的不对 update后面-database空格-script
- Nginx主要模块常用指令说明
核心模块(Core Modules): 主模块(Main Module):配置和服务器全局有关的一些参数,比如错误日志.进程.权限等 user worker_processes error_logsy ...
- 2017 多校4 Matching In Multiplication(二分图)
Matching In Multiplication 题解: 首先如果一个点的度数为1,那么它的匹配方案是固定的,继而我们可以去掉这一对点.通过拓扑我们可以不断去掉所有度数为1的点. 那么剩下的图中左 ...
- 简易web服务器(npm)
npm install -g http-server 以后可以在任何一个文件夹启动静态文件的访问通过http-server -a localhost -p 8000ctrl + c结束 http-se ...
- [从hzwer神犇那翻到的模拟赛题] 合唱队形
[问题描述] 学校要进行合唱比赛了,于是班主任小刘准备给大家排个队形. 他首先尝试排成m1行,发现最后多出来a1个同学:接着他尝试排成m2行,发现最后多出来a2个同学,……,他尝试了n种排队方案,但每 ...