JOI 君马上要和妹妹 JOI 子和 JOI 美一起吃小吃。今天的小吃是他们三个人都很喜欢的年轮蛋糕。

年轮蛋糕是像下图一样呈圆筒形的蛋糕。为了把蛋糕分给三个人,JOI 君必须沿着半径方向切 3 刀,从而把蛋糕分成三块。然而,由于年轮蛋糕硬得像实木一样,要让刀切进去并不简单。因此,这个年轮蛋糕上事先准备了 N 个切口,而 JOI 君只能在有切口的位置下刀。切口按顺时针顺序编号为 1到 N,对于 1≤i≤N−1,第 i 个切口和第 i+1个切口之间部分的大小是 Ai。第 N 个切口和第 1个切口之间部分的大小是 AN ​​。

图 1:一个年轮蛋糕的例子,N=6,A1=1,A2=5,A3=4,A4=5,A5=2,A6=4

妹控的 JOI 君在把蛋糕切成 3 块之后,自己选走最小的一块吃掉,把剩下两块分给两个妹妹。而另一方面,JOI 君太喜欢年轮蛋糕了,只要能吃到的时候就会想吃很多很多。试求:最小块的大小不超过多少。

样例说明 1


图 2:从第 1,3,5个切口下刀时是最优解(即图中粗实线位置)。

这道题先二分枚举最小块,再二分另一块使得这一块长度大于是最小块

第三块就用总长度减去前两块,判断第三块是否大于最小块,如果成立就记录取max

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define ll long long
using namespace std;
const int maxn=1000000+101010;
inline int read(){int x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;for(;isdigit(ch);ch=getchar())x=(x<<3)+(x<<1)+ch-'0';return x*f;
}
ll n,a[maxn],sum,num[maxn];bool erfe(ll l,ll r,ll he){ll l1=l,r1=r,ans=0;while(r1>=l1){ll mid=r1+l1>>1;    ll qq=num[mid]-num[l-1],ww=num[n]-qq-he;if(qq>=he){if(ww>=he)return 1;else r1=mid-1;    }else l1=mid+1;}return 0;
}
ll aa;
ll erf(ll l,ll r){ll l1=l,r1=r,ans=0;while(r1>=l1){ll mid=r1+l1>>1;if(num[mid]-num[l-1]<=sum){if(erfe(mid+1,r,num[mid]-num[l-1]))ans=max(ans,num[mid]-num[l-1]),l1=mid+1;else r1=mid-1;}else r1=mid-1;}return ans;
}ll ans=0;
void zj(){for(ll i=1;i<=n;i++){ans=max(ans,erf(i,n+i-1));}printf("%lld",ans);return ;
}int main(){n=read();for(ll i=1;i<=n;i++){a[i]=read();num[i]=num[i-1]+a[i];sum+=a[i];}for(ll i=n+1;i<=2*n;i++)a[i]=a[i-n],num[i]=num[i-1]+a[i];sum=sum/3;zj();return 0;
}
/*
20
2 3 5 5 4 4 2 4 3113 24
23 43 465 456 2 576 32 45 345 23
15
1 3 4 2 4 252 4 232
2 3 55 32 5 34 23 */

转载于:https://www.cnblogs.com/wzq--boke/p/9754568.html

年轮蛋糕JOI2014Final相关推荐

  1. LOJ2758 年轮蛋糕

    JOI 君马上要和妹妹 JOI 子和 JOI 美一起吃小吃.今天的小吃是他们三个人都很喜欢的年轮蛋糕. 年轮蛋糕是像下图一样呈圆筒形的蛋糕.为了把蛋糕分给三个人,JOI 君必须沿着半径方向切 3 刀, ...

  2. 【2018.10.1】「JOI 2014 Final」年轮蛋糕

    题面 一看到求"最小值的最大值"这种问题,就能想到二分了. 二分答案,然后我们要把一圈分成三块,使这三块的大小都$\geq mid$.做法是把环展开成2倍长度的链,先钦定一个起点, ...

  3. 让味蕾动起来的蛋糕甜点

    松软的面包.顺滑的奶油,唯美的巧克力,淡淡的果香.一口咬下去的松软.甜蜜都令我们回味无穷,再加上一杯鲜奶冲泡的咖啡,浓郁的香气,所有的疲惫与不悦都烟消云散.快来和烟台婚纱摄影一起来看看这些让味蕾动起来 ...

  4. 南京美食,为吃遍天下做准备~~

    /标点美食地址: 1. 羊肉泡馍:长白街348号有家"老陕家"面馆.郑和公园北面: 肉加馍. 2. 蓝空饭店:三条巷那边,稻香鸭.红烧老鹅.韭香脆皮鸡!.是很好的还有一个叫什么 牛 ...

  5. 2004年南京美食地图 [转载]

    一.[中餐] 1.金陵人山西路37号,TEL:83328484.83324869.鼓楼区委斜对过,笋干烧鸭胗, 辣子鸡.海派醉花生.优惠:海瓜子1元/斤(每桌),生蚝3元/只. 2.张生记酒店中山东路 ...

  6. 【HDU 2612 Find a Way(BFS)】(兼BFS入门笔记)

    [HDU 2612 Find a Way(BFS)](兼BFS入门笔记) 原题入口: http://acm.hdu.edu.cn/showproblem.php?pid=2612 第一篇在CSDN的博 ...

  7. 仁者乐山,智者乐水,吃货乐在北海道~

    2019独角兽企业重金招聘Python工程师标准>>> 冬季去北海道滑雪.泡汤,怎能少了美食相伴!北海道美食云集,日本其他地方常见的料理菜式在这里都能见到,同时,由于拥有得天独厚的食 ...

  8. 如何创建一个自己的npm包,并且上传到npm官网上

    1.首先先新建一个文件夹,文件夹的名字就是我们包的名字 cmd命令 2.然后再mynpm里新建一个index.js,内容是我们包的内容 module.exports={eat:function(){v ...

  9. 【拉斯观测组联翻】川原砾 Sword Art Online 27 Unital Ring Ⅵ

    ========================================== Sword Art Online 27 Unital Ring VI 電撃文庫 ================= ...

最新文章

  1. 豆瓣评分9.4,跪着推荐这本密码学入门第一书
  2. 神经网络第一步,手写数字识别的例子分享给大家
  3. 读取javascript脚本的正则表达式
  4. apache的工作模式
  5. php 递归合并类 call,PHP多个数组合并(递归的进行)
  6. 纹理对象纹理单元纹理目标_网页设计理论:纹理
  7. Operating System-进程/线程内部通信-临界区(Critical Regions)
  8. dedecms织梦模板|绿色仿下载吧网站织梦dede模板源码
  9. 轻松带你走进shiro的世界
  10. MQ的连接是否是线程安全的
  11. (09)System Verilog 父类与子类成员变量同名冲突
  12. 安防视频之web无插件播放视频
  13. 单片机:Keil的安装教程
  14. js代码里链接生成二维码
  15. 根据MySQL表结构批量自动生成HIVE建表语句
  16. 新唐N76E003与ST公司STM8S003F3芯片对比 史上最全的没有之一
  17. GhostXP_SP3 PCOS技术快速装机版 5.7(优化细节 力争完美)
  18. 于的繁体字有几种写法_于字书法繁体字怎么写
  19. 春运火车票抢票浏览器强力推荐,秒抢车票到手
  20. MATLAB小白之图片合成

热门文章

  1. [转]数据可视化:基本图表
  2. 轻轻的我走了,正如我轻轻的来…——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(下)...
  3. 第四课:算法效率的度量和存储空间需求
  4. Linux中的动态库和静态库(.a/.la/.so/.o)
  5. Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level...
  6. 建站常用13种PHP开源CMS比较
  7. 如何使用OSI模型排除故障
  8. 光驱弹不出来怎么办?光驱弹不出来的简易解决办法。
  9. 【阿里云新品发布·周刊】第12期
  10. websocket工作原理