模拟祭-比萨-题解O(n)
233233
[ 233 ]
( 233 )
KikokKikok 得到了一块比萨,他迫不及待地想与妹妹 Kik子和 koko美一同享用它。
比萨是一种圆形的食物。为了将它分给三个人,Kikok 需要沿着半径方向切三刀。可是,由于这个比萨太硬了,Kikok只能沿着划好的刀痕把它切开。比萨上一开始有 nn 条刀痕,沿顺时针将它们按照从 1 到 n 的顺序标号
当 11≤i≤n 时,第 i 条刀痕与第 i+1 条刀痕之间的部分大小为 a_i;第 n 条与第 1 条刀痕之间的部分大小为 a_na
因为怕妹妹们哭闹,在比萨分成三块后,Kikok准备让妹妹们拿较大的两块,自己拿最小的一块
可是,Kiko 实在太喜欢比萨了,他想吃地尽可能多,也就是让切出的比萨中最小的一块尽可能地更大。那么,Kikok 最多能吃到多少比萨呢?
输入文件第一行包含一个整数 n,表示比萨上刀痕的数量。
接下来 n 行,其中第 i 行包含一个整数 a_i,依次表示相邻两条刀痕之间的部分的大小。
输出一行一个整数,表示最小的一块比萨的最大大小。
Input 1:
6
1 5 4 5 2 4
Output 1:
6

在 11 号、33 号和 55 号刀痕处切开时取得最优解。
对于 10%的数据,n≤100。
对于 30%的数据,n≤400。
对于 60%的数据,n≤8000。
对于 100%的数据,3≤n≤100000, 1≤ai≤1000000000。
-----------------------------------------------------------------------------
把圆拆成条
其中的一个特殊块
是两头块的加和
用3个指针
边遍历,边找最小块的最大值
于是就出来了
#include<cstdio>
#include<iostream>
#define maxn 100010
using namespace std;
long long n,a[maxn],minn,sum[maxn];
int main()
{
scanf("%lld",&n);
for(int i=; i<=n; i++)
{
scanf("%lld",&a[i]);
sum[i]=sum[i-]+a[i];
}
int t1=,t2=,t3=;
for(int i=; i<=*n; i++)
{
if(t2>t3) swap(t2,t3);
if(t1>t2) swap(t1,t2);
long long ans1=sum[t2]-sum[t1];
long long ans2=sum[t3]-sum[t2];
long long ans3=sum[n]-sum[t3]+sum[t1];
long long pp=min(ans1,min(ans2,ans3));
if(pp>minn) minn=pp;
if(pp==ans2)
{
t3++;
if(t3>n) t3=;
}
else if(pp==ans1)
{
t2++;
if(t2>n) t2=;
}
else if(pp==ans3)
{
t1++;
if(t1>n) t1=;
}
}
printf("%lld",minn);
return ;
}
模拟祭-比萨-题解O(n)的更多相关文章
- 一些noip模拟题一句话题解
Problem A: 序列 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 12 Solved: 9[Submit][Status][Web Boar ...
- 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解
今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...
- csps模拟87888990部分题解
题面:https://www.cnblogs.com/Juve/articles/11752338.html https://www.cnblogs.com/Juve/articles/1175241 ...
- 【DP】【构造】NOIp模拟题 演讲 题解
极其考思维的好题 题目背景 众所周知,$\mathrm{Zdrcl}$是一名天天$\mathrm{AK}$的高水平选手. 作为一民长者,为了向大家讲述自己$\mathrm{AK}$的经验,他决 ...
- PAT甲级 模拟题_C++题解
模拟题 PAT (Advanced Level) Practice 模拟题 目录 1008 Elevator (20) 1042 Shuffling Machine (20) 1046 Shortes ...
- CSP-S 模拟测试94题解
T1 yuuustu: 可以对两边取对数,然后就转化为两个double的比较,时间复杂度$O(n)$ 然后我就用神奇0.4骗分水过 #include<bits/stdc++.h> usin ...
- CSP-S模拟测试 88 题解
T1 queue: 考场写出dp柿子后觉得很斜率优化,然后因为理解错了题觉得斜率优化完全不可做,只打了暴力. 实际上他是可以乱序的,所以直接sort,正确性比较显然,贪心可证,然后就是个sb斜率优化d ...
- CSP-S 模拟测试92 题解
话说我怎么觉得我没咕多长时间啊,怎么就又落了20多场题解啊 T1 array: 根据题意不难列出二元一次方程,于是可以用exgcd求解,然而还有一个限制条件就是$abs(x)+abs(y)$最小,这好 ...
- CSP-S 模拟测试57题解
人生第一次A,B层一块考rank2,虽然说分差没几分,但还是值得纪念. 题解: T1 天空龙: 大神题,因为我从不写快读也没有写考场注释的习惯,所以不会做,全hzoi就kx会做,kx真大神级人物. T ...
随机推荐
- Genymotion安卓模拟器和VirtualBox虚拟机安装、配置、测试
Genymotion安卓模拟器和VirtualBox虚拟机安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.VirtualBox虚拟机安装 4.Genymotion安卓 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...
- Elasticsearch alias别名管理小结
Elasticsearch alias别名管理小结 By:授客 QQ:1033553122 建创测试数据 1 创建别名 2 移除别名 3 创建测试数据 4 批量操作 5 例1. 5 例2. 把多个索引 ...
- OkHttp的缓存
看到很多小伙伴对OkHttp的缓存问题并不是十分了解,于是打算来说说这个问题.用好OkHttp中提供的缓存,可以帮助我们更好的使用Retrofit.Picasso等配合OkHttp使用的框架.OK,废 ...
- DAY9(PYTHON)
li=[{'usename':'xiaowang'}, {'} ] board=['张三','李四','王大麻子'] while 1: usename = input('用户名:') if usena ...
- Android 7.0 fiddler代理抓不到https请求的解决办法
解决方法: 1.在源码res目录下新建xml目录,增加network_security_config.xml文件 (工程名/app/src/main/res/xml/network_security ...
- 《node.js权威指南》读书笔记
第一章 node.js介绍 非阻塞型I/O机制 当在访问数据库取得搜索结果的时候,在开始访问数据库之后,数据库返回结果之前,存在一段等待时间. 在传统的单线程处理机制中,在执行了访问数据库的代码之后, ...
- Jenkins 配置CI/CD任务
本文演示如何通过Jenkins创建CI/CD任务,部署一整套微服务体系结构,并运行在之前搭建的mini云平台上. 如果是初始尝试实践,可能需要参考 快速搭建云原生架构的实践环境 和 Jhipster技 ...
- 口碑点餐相关问题FAQ
1.菜品上传中:出现重复错误或者违禁词 检查并修改商家中心本次上传中的重复菜品,或者删除口碑掌柜以及第三方平台已添加的重复菜品(重复菜品临时快捷办法:修改菜品名称) 2.手持pos 打开自动接单,无响 ...
- Windows Server 2016-Wbadmin命令行备份域控制器
在上一章我们讲到Windows Server 2016-图形化备份域控制器的方法,本章我们聊聊如何通过命令行Wbadmin对域控制器进行备份.在Windows Server Active Direct ...