空降题目处
点我点我点我

Description:

熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。
奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到奶牛B的距离为A顺时针走和逆时针走,到达B的较短路程。告诉你相邻两个奶牛间的距离,请你告诉奶牛两只最远的奶牛到底隔了多远。

Input

第一行一个整数N,表示有N只奶牛。(2<=N<=100000)。
接下来2~N+1行,第i行有一个数,表示第i-1头奶牛顺时针到第i头奶牛的距离。(1<=距离<=maxlongint,距离和<=maxlongint)
第N+1行的数表示第N头奶牛顺时针到第1头奶牛的距离。

Output

一行,表示最大距离。

Solution

S S为环的长度.
若点AA到点 B B的一边距离为XX,则另一边距离为 S−X S-X.
若 X<S−X X,则 X<S2 X.
所以 max(X)<S2 \max\left(X\right)
利用前缀和,二分位置.

Program

C++

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;int n,s,ans,r;
long long t[200001];int FF(int l,int r,int q);int main()
{scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%lld",&t[i]);s+=t[i];t[i]+=t[i-1];}for (int i=1;i<=n;i++)t[i+n]=t[i]+s;for (int i=1;i<=2*n;i++){r=abs(s/2-FF(1,i-1,t[i]));ans=max(ans,s/2-r);}printf("%d\n",ans);
}int FF(int l,int r,int q)
{if (l>=r)return q-t[l];int m=(l+r)/2;if (q-t[m]<=s/2)return FF(l,m,q);elsereturn FF(m+1,r,q);
}

Pascal

usesmath;varn,s,ans,r,i:longint;t:array [0..200000] of int64;function FF(l,r,q:longint):longint;
varm:longint;beginif l>=r thenexit(q-t[l]);m:=(l+r) div 2;if (q-t[m]<=s div 2) thenexit(FF(l,m,q))elseexit(FF(m+1,r,q));end;beginreadln(n);for i:=1 to n dobeginread(t[i]);inc(s,t[i]);inc(t[i],t[i-1]);end;for i:=1 to n dot[i+n]:=t[i]+s;for i:=1 to n*2 dobeginr:=abs(s div 2-FF(1,i-1,t[i]));ans:=max(ans,s div 2-r);end;writeln(ans);end.

July 16th 模拟赛C T3 圆周舞蹈 Solution相关推荐

  1. July 16th 模拟赛C T4 奶牛排队 Solution

    空降题目处 点我点我点我 Description: 奶牛在熊大妈的带领下排成了一条直队. 显然,不同的奶牛身高不一定相同..... 现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮 ...

  2. July 14th 模拟赛C T3 灌水 Solution

    空降题目处 点我点我点我 Description: 学生都很喜欢灌水,第一天只有Alice给她的每个朋友灌了一次水,从第二天开始,所有学生(包括Alice)将会有规律地去灌水: •如果前一天被灌了奇数 ...

  3. July 16th 模拟赛C T1 竞赛排名 Solution

    空降题目处 点我点我点我 Description: Input 输入文件为compe.in.文件的第一行为参赛总人数N(1<=N<=100),从第二行到第N行依次为编号1到编号N的选手的成 ...

  4. July 16th 模拟赛C T2 奶牛晒衣服 Solution

    空降题目处 点我点我点我 Description: 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负 ...

  5. 洛谷noip 模拟赛 day1 T3

    T7983 大芳的逆行板载 题目背景 大芳有一个不太好的习惯:在车里养青蛙.青蛙在一个n厘米(11n毫米s)的Van♂杆子上跳来跳去.她时常盯着青蛙看,以至于突然逆行不得不开始躲交叉弹.有一天他突发奇 ...

  6. 省选模拟赛Day7 T3 随便乱走

    题意: 一个n个点的环,当你在i号点时有Pi/2的概率走向(i%n+1)号点,有Pi/2的概率走向((i-2+n)%n+1)号点,有(1-pi)的概率永远停下,动态修改Pi,多次询问从i号点出发走的距 ...

  7. 模拟赛01 T3 盖房子

    题面 http://zhengruioi.com/problem/248 题解 三重容斥(说是两重也行吧) 我们来看题目的约束 ①有k个位置不能放(k≤8) ②每行每列至少一个 ③正负对角线至少一个 ...

  8. 备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈

    10月3日备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈 题目描述 在全世界人民的期盼下,2008年北京奥林匹克运动会终于隆重召开了! 为了展示中华民族博大精深的优秀传统文化,负责开 ...

  9. 2017.6.11 校内模拟赛

    题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...

最新文章

  1. 简单好用!利用Spring AOP技术10分钟实现一个读写分离方案
  2. 手机淘宝轻店业务 Serverless 研发模式升级实践
  3. 大数据时代的电信运营商的机遇
  4. SQL的各种连接(cross join、inner join、full join)的用法理解
  5. 随机化算法-----模拟退火
  6. Software optimization resources
  7. javaScript第七天(2)
  8. Tree Cutting POJ - 2378(树形DP)
  9. react 子传参父_react子父传参有几种方法?
  10. 第二十三届高交会闭幕 奇安信三项产品获评“优秀产品奖”
  11. cocos creator入门教程(十八)—— creator_Director对象与资源加载策略
  12. 10个提供Logo设计灵感的创意网站
  13. S5P4418 使用SD卡启动Android系统
  14. 饥荒控制台输入没用_饥荒联机版代码为什么没效 怎么用怎么输入
  15. 计时函数clock()与数据类型clock_t
  16. AT89C51(Atmel)芯片制作简易的频率计
  17. 系统类毕业设计思路以及各种遇到问题的解决办法
  18. POJ 3264 Balanced Lineup
  19. Mybatis-Plus eq、ne、gt、lt、ge、le分别代表含义
  20. openstack-horizon

热门文章

  1. html+css简单的实现360搜索引擎首页面
  2. 微信小程序wxml如何判断字符串中汉语某字符_微信小程序开发经典案例解析“嗨兔儿”...
  3. navicat导入excel表中数据出错问题
  4. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)
  5. 使用OSM通过ArcGis显示城市线路地图
  6. IOS使用高德地图获取当前位置信息
  7. 转载 测试面试问题总汇
  8. Nginx目录结构、编译参数、状态码概述
  9. Springsecurity+cas整合后无法单点登出
  10. 数字先锋 | 天翼云牵手中能融合