奶牛均分

news2024/11/25 22:28:14

解法:

假设编号从左到右递增,奶牛每次只能去往左边的牛圈。因此等分最大奶牛数小于等于最右边牛圈奶牛数,不妨设数为k,那么a[i]>=k,a[i-1]>=2k。。。

做后缀和+二分答案就可找到k

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define endl '\n'
bool check(vector<int>& ne, int k) {
	int n = 1;
	for (int i = ne.size()-2; ~i; i--) {
		if (ne[i] < n * k) {
			return false;
		}
		else n++;
	}
	return true;
}
int main() {
	int n; cin >> n;
	vector<int> vec(n+1), ne(n+1);
	for (int i = 0; i < n; i++) cin >> vec[i];
	for (int i = n - 1; ~i; i--) ne[i] = vec[i] + ne[i + 1];
	int l = 0, r = vec[n - 1];
	int res = 0;
	while (l <= r) {
		int mid = l + (r - l) / 2;
		if (check(ne, mid)) {
			res = mid;
			l = mid + 1;
		}
		else {
			r = mid - 1;
		}
	}
	long long sum = 0;
	for (int i = n - 1; ~i; i--) {
		if (vec[i] > res) {
			if (i > 0) {
				vec[i - 1] += vec[i] - res;
			}
			sum += vec[i] - res;
		}
	}
	cout << sum << endl;
	return 0;
}

解法二:

#include <iostream>
using namespace std;
int a[100005], b[100005];
int main()
{
    long long n, num = 0, min = 1e9;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for (int i = n; i >= 1; i--)
        b[i] = a[i] + b[i + 1];
    for (int i = 1, j = n; i <= n; i++, j--) {
        if ((b[i] / j) < min) min = (b[i] / j);
    }
    for (int i = 1, j = n; i <= n; i++, j--) {
        num += abs(b[i] - min * j);
    }
    cout << num;
}

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

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

相关文章

利用Android studio 查看模拟器中数据文件

打开Android studio &#xff0c;然后按照下图选择 然后会在右侧打开一个这样子的管理弹窗 找到 data/data/your project file 你的缓存跟下载的文件就都在里面了

如何利用RunnerGo简化性能测试流程

在软件开发过程中&#xff0c;测试是一个重要的环节&#xff0c;需要投入大量时间和精力来确保应用程序或网站的质量和稳定性。但是&#xff0c;随着应用程序变得更加复杂和庞大&#xff0c;传统的测试工具在面对比较繁琐的项目时非常费时费力。这时&#xff0c;一些自动化测试…

UE4_官方动画内容示例1.1_使用动画资产

对一个SkeletalMeshActor进行设置&#xff0c;设置好之后&#xff0c;可以通过该Actor的细节&#xff08;Details&#xff09;面板播放指定的动画序列&#xff08;AnimationSequence&#xff09;资产&#xff08;例如让Actor翻跟斗并做开合跳&#xff09;。 骨架网格体定义&am…

相机与激光雷达是怎么标定的?一览行业所有主流的标定工具

相机与激光雷达是怎么标定的&#xff1f;一览行业所有主流的标定工具 相机与激光雷达的标定是很多任务的基础工作&#xff0c;标定精度决定了下游方案融合的上限&#xff0c;因为许多自动驾驶与机器人公司投入了较大的人力物力不断提升&#xff0c;今天也为大家盘点下常见的Ca…

幼儿教育管理系统|基于jsp 技术+ Mysql+Java的幼儿教育管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

【PHP + 代码审计】函数详解2.0

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

matlab 基于小波变换的油气管道泄露信号检测

1、内容简介 略 71-可以交流、咨询、答疑 基于小波变换的油气管道泄露信号检测 去噪、小波变换、油气管道泄露、信号检测 2、内容说明 摘 要&#xff1a; 油气管道泄漏会造成严重危害&#xff0c;因此&#xff0c;亟需寻找一种能快速检测油气管道信号的技术。传统的 傅里…

Gif动态闪图如何制作?教你1分钟快速制作

动态文字闪图是一种独特而有趣的图像效果&#xff0c;通过将文字以闪烁、跳动或变换的方式呈现&#xff0c;给人一种动态感和视觉冲击力。如果你想制作自己的动态文字闪图&#xff0c;下面是一些简单的方法来帮助你完成这个任务。使用在线闪图制作网站-GIF5工具网&#xff0c;无…

Ubuntu虚拟机的IP总频繁变化,导致Xshell断开连接

文章目录 一、IP变化的原因二、解决方法&#xff1a;固定IP三、参考文章 一、IP变化的原因 1.DHCP协议 虚拟机系统(Ubuntu、CentOS、UOS等Linux系统)启动后&#xff0c;加入本地局域网网络时&#xff0c;会向本地网络申请租约一个IP地址&#xff0c;租约时长不定。我这里租约时…

程序员下班以后做什么副业合适?

我就是一个最普通的网络安全工程师&#xff0c;出道快10年了&#xff0c;不出意外地遭遇到瓶颈期&#xff0c;但是凭技术在各大平台挖漏洞副业&#xff0c;硬是妥妥扛过来了。 因为对于程序员来讲&#xff0c;这是个试错成本很低、事半功倍的选择。编程技能是一种强大生产力&a…

RocketMQ tag不匹配

问题现象 消费组消费消息显示tag不匹配&#xff0c;但检查配置是一样的tag 消费端配置 原因分析 订阅组订阅一致性 订阅一致性是指同一个订阅组&#xff08;ConsumerGroup&#xff09;下所有的 Consumer 实例订阅&#xff0c;Topic 与 Tag 必须完全一致&#xff0c;否则可能…

首页效果炫酷的wordpress免费主题模板

视频背景免费WP主题 简洁大气的视频背景wordpress主题&#xff0c;找大视频背景的主题可以看看这个。 https://www.wpniu.com/themes/193.html 红色全屏大图WP主题 非常经典的一款免费wordpress主题&#xff0c;红色全屏大图满足多行业使用。 https://www.wpniu.com/themes…

代码随想录算法训练营第29天| 491.递增子序列、46.全排列、47.全排列 II

491.递增子序列 题目链接&#xff1a;复原IP地址 题目描述&#xff1a;给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数…

STM32CubeMX学习笔记23---FreeRTOS(任务的挂起与恢复)

1、硬件设置 本实验通过freertos创建两个任务来分别控制LED2和LED3的亮灭&#xff0c;需要用到的硬件资源 LED2和LED3指示灯串口 2、STM32CubeMX设置 根据上一章的步骤创建两个任务&#xff1a;STM32CubeMX学习笔记22---FreeRTOS&#xff08;任务创建和删除&#xff09;-CS…

XMind:让思维可视化,提升工作效率的利器

XMind是一款全球领先的开源思维导图和头脑风暴软件&#xff0c;它应用全球最先进的Eclipse RCP软件架构&#xff0c;拥有优秀的用户体验&#xff0c;凭借简单易用、功能强大的特点&#xff0c;在2013年被著名互联网媒体Lifehacker评选为全球最受欢迎的思维导图软件。目前&#…

小程序用什么SSL证书比较好?

小程序开发时为了实现HTTPS加密通信&#xff0c;可以选择以下几种类型的SSL证书&#xff1a; 1.域名验证型SSL证书 - DV证书是最基础的SSL证书类型&#xff0c;主要验证域名的所有权。对于个人开发者或小型企业的小程序&#xff0c;特别是展示类小程序或无需进行深度身份验证的…

可下载九大报纸种类的下载工具

今天给大家分享一个可以下载中国证券报&#xff0c;人民日报&#xff0c;农民日报&#xff0c;工人日报&#xff0c;江西日报&#xff0c;科技日报&#xff0c;NEWS&#xff0c;经济日报&#xff0c;解放军报&#xff0c;赣南日报的下载工具。 一、主要特点&#xff1a; 1.可以…

shardingsphere-elastic-job-ui 管理界面安装

shardingsphere-elasticjob 从 3.0.0-alpha 版本开始&#xff0c;将console管理界面单独拆分出来 下载前需要 安装 maven 配置环境变量 安装 nodejs 配置环境变量 下载ui源码,安装 官方并未直接提供可执行的二进制文件,需要下载源码编译,目前发行版 3.0.2 https://github.com/…

Docker使用(四)Docker常见问题分析和解决收集整理

Docker使用(四)Docker常见问题分析和解决收集整理 五、常见问题 1、 启动异常 【描述】&#xff1a; 【分析】&#xff1a;[rootlocalhost ~]# systemctl status docker 【解决】&#xff1a; &#xff08;1&#xff09;卸载后重新安装&#xff0c;不能解决这个问题。 …

日本370公告 各类材质餐具进出口检测 报告出具

食品接触材料指的是在正常使用过程中与食品进行接触的材料&#xff0c;涉及的产品包括&#xff1a;食品包装&#xff0c;餐具、厨具&#xff0c;食品加工机械&#xff0c;厨电产品等&#xff0c;但是由于其在生产过程中使用了一些化学原材料及化学助剂等&#xff0c;使得他们在…