倍增算法——AtCoder Beginner Contest 370 F

F - Cake Division

题意:就是说给你一个蛋糕,然后又n块,让你分成k份,每份蛋糕必须要相连,然后问你所有分的情况中,最小的那一份蛋糕,最大的质量是多少,然后判断,在每一种划分中,都不会被划分到的那条线有几条

思路:首先,这是一个环,很明显,我们要将环拆分为链,因此我们在原数组的后面再接上长度为n的数组一次即可

然后我们要分成k份,因此我们要遍历每一个点,总共n个,还要进行二分去找每一个点的最右的一个端点,时间复杂度为n^2logn,很明显会超时,那么我们该如何去优化?

我们可以考虑倍增算法,可以通过O(n)的滑动窗口得到最右端的位置。这就是分一段的区间,而如果分两段就f[f[x]]。注意到只要起点固定,它会延伸到哪里也固定了,不同段之间也相互独立。因此函数可以简单的复合起来,相比于一次一次分,优化方向就是以倍增的形式分段。

二分之后用倍增去处理每一个点分2^j段的最右边界,这样时间复杂度为nlogn^2这样时间就过了

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k;
int a[400005];
int f[400005][20];
deque<int> que;int check(int mid)
{f[2*n][0]=2*n+1;f[2*n+1][0]=2*n+1;int r=1,sum=0;for(int i=1;i<=2*n;i++){while(sum<mid&&r<=2*n){que.push_back(a[r]);sum+=a[r];r++;}if(sum>=mid){f[i][0]=r;}else{f[i][0]=2*n+1;}sum-=que.front();que.pop_front();}for(int j=1;j<20;j++){for(int i=1;i<=2*n+2;i++){f[i][j]=f[f[i][j-1]][j-1];}}int flag=0;int cnt=0;for(int i=1;i<=n;i++){int p=i;for(int j=19;j>=0;j--){if((k>>j)&1){p=f[p][j];}}if(p<=i+n){cnt++;}}return cnt;
}int find()
{int cnt=0;for(int i=1;i<=n;i++){int p=i;for(int j=20;j>=0;j--){if((k>>j)&1){p=f[p][j];}}if(p<=i+n){cnt++;}}return cnt; 
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];a[i+n]=a[i];}int l=1,r=1e12;int ans=0;while(l<=r){int mid=(l+r)/2;if(check(mid)){ans=mid;l=mid+1;}else{r=mid-1;}}int cnt=check(ans);cout<<ans<<" "<<n-cnt<<"\n";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1543128.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM)

【永磁同步电机&#xff08;PMSM&#xff09;】 6. 矢量空间算法&#xff08;SVPWM&#xff09; 1. SVPWM 的基本原理1.1 SVPWM 的优点1.2 SVPWM 的电路拓扑1.3 连续旋转的空间矢量 2. SVPWM 的算法实现2.1 电压矢量组合方案2.2 SVPWM 的实现步骤 3. 基于 Simulink 的 SVPWM 仿…

根据一级分类Id获取专辑标签(内连接,一对多)

文章目录 base_attributebase_attribute_value 1、BaseAttribute2、BaseAttributeValue3、BaseCategoryApiController --》findAttribute()4、BaseCategoryServiceImpl --》findAttribute()5、BaseAttributeMapper6、BaseAttributeMapper.xml 当选择完专辑分类之后&#xff0c;…

【BEV 视图变换】Ray-based(2): 代码复现+画图解释 基于深度估计、bev_pool(代码一键运行)

paper&#xff1a;Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D code&#xff1a;https://github.com/nv-tlabs/lift-splat-shoot 一、完整复现代码(可一键运行)和效果图 import torch import torch.nn as nn import mat…

旺店通ERP集成金蝶EAS(金蝶EAS主供应链)

源系统成集云目标系统 金蝶EAS介绍 金蝶EAS是一款全球首款融合TOGAF标准SOA架构的企业管理软件&#xff0c;专门为大中型企业设计&#xff0c;以“创造无边界信息流”为产品设计理念&#xff0c;支持云计算、SOA和动态流程管理的整合技术平台。 旺店通介绍 旺店通ERP系统是一…

CORE Kestrel Web、InProcess、OutOfProcess、启动配置

Kestrel 服务 ASP.NET Core是一个跨平台框架。 这意味着它支持在不同类型的操作系统&#xff08;例如Windows&#xff0c;Linux或Mac&#xff09;上开发和运行应用程序。 Kestrel是ASP.NET Core应用程序的跨平台Web服务器。 这意味着该服务器支持ASP.NET Core支持的所有平台和…

防火墙详解(二)通过网页登录配置华为eNSP中USG6000V1防火墙

配置步骤 步骤一 打开eNSP&#xff0c;建立如下拓扑。防火墙使用&#xff1a;USG6000V1。 Cloud的作用是通过它可以连接本地的网卡&#xff0c;然后与我们的电脑进行通信。 由于防火墙USG6000V&#xff0c;不能直接开启&#xff0c;需要的导入包&#xff0c;所以需要在华为官网…

一文了解什么是大模型?到底大模型有什么用呢?

党中央、国务院面向未来准确把握时代大势&#xff0c;已于十三五期间部署推进数字中国建设&#xff0c;《国民经济和社会发展第十四个五年规划和2035年远景目标纲要》更是将“加快数字化发展&#xff0c;建设数字中国”单列成篇&#xff0c;要求“提高数字政府建设水平”&#…

数据安全评估工程师CCRC-DSA

数据安全评估工程师这一角色&#xff0c;要求从事者具备特定的条件与能力。 本文旨在阐述如何成为数据安全评估工程师&#xff0c;包括所需条件及该职业的难易程度。 一、数据安全评估工程师的角色 数据安全评估工程师专注于对企业数据的安全风险进行评估。 他们通过对数据…

Android平台Unity3D下如何同时播放多路RTMP|RTSP流?

技术背景 好多开发者&#xff0c;提到希望在Unity的Android头显终端&#xff0c;播放2路以上RTMP或RTSP流&#xff0c;在设备性能一般的情况下&#xff0c;对Unity下的RTMP|RTSP播放器提出了更高的要求。实际上&#xff0c;我们在前几年发布Unity下直播播放模块的时候&#xf…

橙子质量检测系统源码分享

橙子质量检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

数字化转型的实践指南:业务能力建模的全景应用与企业创新路径

在当今快速变化的商业环境中&#xff0c;数字化转型已成为企业持续创新和提升竞争力的关键战略。然而&#xff0c;如何有效规划、构建并管理企业的核心业务能力&#xff0c;确保企业在数字化时代能够敏捷应对市场变化&#xff0c;是许多企业面临的挑战。《业务能力指南》为这一…

如何使用ChatGPT撰写文献综述?7个步骤轻松搞定

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 撰写文献综述对于研究人员和学生来说…

STM32F407-03

PWM PWM指的是脉冲宽度的控制,是一种利用微处理器的数字输出能力来控制模拟电路技术 PWM有两个关键参数一个是占空比 和 频率 频率指的是STM32的定时器通道的脉冲次数 占空比指的是一个周期内高电平所占的比例 PWM一般是用在工业控制领域 在这里可以看到PF9引脚和TIM14是相关…

白酒冷知识 普通人判断酒好坏这三招就够了

摩擦法&#xff1a;手心滴几滴白酒反复摩擦假酒: 发酸发臭真酒:粮食香气 兑水法&#xff1a;酒中加1/3的水 假酒: 无任何反应纯粮酒&#xff0c;会变浑浊 火烧法倒满酒用火烧假酒: 无颜色有臭味 纯粮酒:烧完浑浊酒糟香

java项目之城镇保障性住房管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的城镇保障性住房管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 城镇保障性住房管…

9.23今日错题解析(软考)

前言 这是用来记录我每天备考软考设计师的错题的&#xff0c;大部分错题摘自希赛中的题目&#xff0c;但相关解析是原创&#xff0c;有自己的思考&#xff0c;为了复习&#xff1a;&#xff09;&#xff0c;最后希望各位报考软考的小伙伴都能上岸&#xff01;&#xff01;&…

10分钟了解什么是多模态大模型(MM-LLMs)

1. 什么是多模态 Multimodality 多模态&#xff08;Multimodality&#xff09;是指集成和处理两种或两种以上不同类型的信息或数据的方法和技术。在机器学习和人工智能领域&#xff0c;多模态涉及的数据类型通常包括但不限于文本、图像、视频、音频和传感器数据。多模态系统的…

企业微信not allow to access from your ip 解决方案

正文 不用看&#xff0c;你可能的是本地测试企业微信接口 公司网络的对外ip是会变的&#xff0c;你可以去下图这里查&#xff0c;然后填到上图那边就可以了。 下面是废话 我知道企业微信这里坑很多&#xff0c;但是我也不清楚35岁的我还能做多久这行多久&#xff0c;只能说&a…

Kotlin 函数和变量(四)

导读大纲 1.1 基本要素: 函数和变量1.1.1 声明变量以存储数据1.1.2 将变量标记为只读或可重新赋值1.1.3 更简单的字符串格式化: 字符串模板 1.1 基本要素: 函数和变量 本节将向你介绍每个 Kotlin 程序都包含的基本元素: 函数和变量 你将编写自己的第一个 Kotlin 程序,了解 Kotl…

18_Python文件操作

计算机中的文件 文件是存储在计算机上的数据集合&#xff0c;它可以是文本、图片、音频、视频或其他任何类型的数据。 在计算机系统中&#xff0c;文件通常用来长期保存信息。 文本文件&#xff1a;一种以字符编码&#xff08;如ASCII、UTF-8、UTF-16等&#xff09;的形式存储…