MT2085 小码哥的福利

news2025/3/19 0:34:18

思路:

1. 耐受度从小到大排序,每一个甜品都找到第一个能忍受其甜度的手下。

例如样例:甜度为1的2份甜品给第1个人吃(此人耐受为2);甜度为3的9份甜品给第2个人吃(此人耐受为3);甜度为4的4份甜品给第3个人吃(此人耐受为5);

将sum[]数组赋值为[2,9,4],之后将其平均化:甜品的转移只能从左到右转移,即第2个人吃的9个甜品只能分给右边的第3个人。

2. 每一次都想达到一个理论上的平均值,所以从第1 个人开始遍历,每一次遍历都计算i到n的平均。如果此人大于平均,则需要将甜品转移给右边的人

例如样例:遍历1号时,平均=(2+9+4)/3=5,1号此时为2,所以不用处理;遍历2号时,平均=(9+4)/2=6.5=6,2号此时为9,所以把3个甜品分给右边的3号。最后sum[]=[2,6,7]。

代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 55;
ll n, m, a[N], sum[N];
struct tianpin
{
	ll b, c;
} t[N];
int cmp(tianpin x, tianpin y)
{ // 甜品甜度由小到大排序
	return x.b < y.b;
}
ll add(int l, int r)
{ // 计算sum[l]到sum[r]的和
	ll ans = 0;
	for (int i = l; i <= r; i++)
	{
		ans += sum[i];
	}
	return ans;
}

int main()
{
	cin >> n;
	ll maxn = 0; // 最高耐受度
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
		maxn = max(maxn, a[i]);
	}
	sort(a + 1, a + n + 1);
	cin >> m;
	for (int i = 1; i <= m; i++)
	{
		cin >> t[i].b;
		if (t[i].b > maxn) // 此甜品没有能容忍的人
		{
			cout << -1 << endl;
			return 0;
		}
	}
	for (int i = 1; i <= m; i++)
	{
		cin >> t[i].c;
	}
	sort(t + 1, t + n + 1, cmp);
	for (int i = 1; i <= m; i++)
	{ // sum数组赋初值,每个甜品找第一个能吃的人
		for (int j = 1; j <= n; j++)
		{
			if (a[j] >= t[i].b)
			{
				sum[j] += t[i].c;
				break;
			}
		}
	}
	for (int i = 1; i <= n; i++)
	{ // 平均化
		ll tmp = (add(i, n)) / (n - i + 1);
		if (tmp <= sum[i])
		{ // 此人分配的甜品过多->分给右边的人
			sum[i + 1] += sum[i] - tmp;
			sum[i] = tmp;
		}
	}
	ll ans = 0;
	for (int i = 1; i <= n; i++)
	{
		ans = max(ans, sum[i]);
	}
	cout << ans << endl;
	return 0;
}

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

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

相关文章

学习串口屏需要了解哪些方面的知识

学习串口屏需要掌握的知识主要包括以下几个方面&#xff1a; 串口通信原理&#xff1a;串口屏是基于串口通信的显示控制模组&#xff0c;因此了解串口通信的基本原理和通信协议是必要的。你需要了解串口通信的基本概念、数据格式、波特率、校验位等参数&#xff0c;以及串口通…

python嵌套列表求学生平均分

嵌套列表 3个学生&#xff0c;5门课程&#xff0c;求每门课程的平均分和最大最小分 import randomnames [张三, 李四, 王五] courses [语文, 数学, 英语, 体育, 科学] # 嵌套列表&#xff0c;scores [[74, 96, 51, 83, 77], [81, 75, 75, 77, 52], [66, 57, 56, 74, 95]] s…

在iPad上恢复丢失数据的3方法

iPad概览 iPad不仅可以用来看电影&#xff0c;还可以用来工作和学习。使用 Apple Pencil&#xff0c;您可以在 iPad 上做笔记、画画、制作音乐、编辑视频和在课堂上教学等。同时&#xff0c;由于体积小&#xff0c;您可以在商务旅行中轻松随身携带。因此&#xff0c;iPad已成为…

Spring-IoC入门案例

黑马程序员SSM框架教程 文章目录 一、创建一个项目1.1 新建项目1.2 创建dao和service包&#xff0c;项目结构如下1.3 代码1.4 运行结果 二、将service和dao交给IoC容器管理2.1 导入Spring的坐标spring-context&#xff0c;对应版本是5.2.10.RELEASE2.2 2. 配置bean2.3 获取IoC容…

使用matplotlib.animation.ArtistAnimation绘制摆线

在数学中&#xff0c;摆线&#xff08;Cycloid&#xff09;被定义为&#xff0c;一个圆在一条直线上滚动时&#xff0c;圆边界上一定点所形成的轨迹。它是一般旋轮线的一种。摆线亦称圆滚线。 摆线也是最速降线问题和等时降落问题的解。 应用matplotlib.animation.ArtistAnimat…

BUG记录——代码正确,free报错

项目场景 无具体场景&#xff0c;学习数据结构时发现的问题。 问题描述 malloc后无法释放空间&#xff0c;报错显示如下。 图中代码如下。 int main() {int* a (int*)malloc(sizeof(int));free(a);return 0; } 原因分析 我使用的是VisualStdio2022版本&#xff0c;头文件的需求…

vscode设置编辑器文件自动保存

步骤 1.打开vscode的设置 2.在搜索栏输入关键字“保存”&#xff1b; 在 Files: Auto Save 设置项&#xff0c;选择自动保存的模式

echarts 交错柱状图, 对向柱状图, 双柱状图横向

设计图样式 上代码 父组件 <bar-chart :option"energyOption"></bar-chart>initChart() {//上周能耗排行榜this.black_label ["漫张农污处理设施","邓庄农污处理设施","王桥农污处理设施","甲庄农污处理设施"…

充电宝如何选购?2024年全网充电宝选购大全!选充电宝注意这几点

在2024年的数字生活浪潮中&#xff0c;充电宝虽小&#xff0c;却是维系我们设备活力的关键。但市面上产品良莠不齐&#xff0c;安全问题频发&#xff0c;如何从中筛选出既安全又实用的充电宝&#xff0c;成为每位数码达人的必修课。别担心&#xff0c;这篇“充电宝如何选购&…

leetcode第867题:转置矩阵

matrix[i][j]需要放在转置矩阵的(j,i)位置 public class Solution {public int[][] Transpose(int[][] matrix) {int rows matrix.Length; int columns matrix[0].Length; int[][] array2 new int[columns][];// 初始化内部数组&#xff08;列数&#xff09;for (int i 0…

判断经纬度是否在某个城市内

一、从高德获取指定城市边界经纬度信息 通过apifox操作&#xff1a; 二、引入第三方jar包&#xff1a; maven地址&#xff1a;https://mvnrepository.com/ maven依赖&#xff1a; <dependency><groupId>org.locationtech.jts</groupId><artifactId>…

私域流量课程企业培训小程序网站的作用是什么

中高型企业在发展方面&#xff0c;各个环节都需俱到&#xff0c;内部培训或是外部相关课程需求度都比较高&#xff0c;比如近些年火热的私域流量运营&#xff0c;存在着不少干货输出机构或个人&#xff0c;线上线下课程培训&#xff0c;做企业培训和私域流量运营课程输出的机构…

深入分析 Android Service (完)

文章目录 深入分析 Android Service (完)1. Service 的生命周期管理2. Service 的生命周期方法2.1 onCreate()2.2 onStartCommand(Intent intent, int flags, int startId)2.3 onBind(Intent intent)2.4 onUnbind(Intent intent)2.5 onRebind(Intent intent)2.6 onDestroy() 3.…

在当前页面拿到抽屉弹窗页面中从后端返回的值 #Vue3 #两个.vue页面之间传值问题

在当前页面拿到抽屉弹窗页面中从后端返回的值 #Vue3 #两个.vue页面之间传值问题 *解决方法一&#xff1a; 将抽屉弹窗里从后端返回得到的值缓存在浏览器中&#xff0c;在当前页面中从浏览器中获取该值。 &#xff08;原理其实就是借助第三个盒子来传递一下值&#xff0c;太小学…

钣金件设计规范

(一&#xff09; 钣金 1、钣金的概念 钣金&#xff08;sheet metal&#xff09;是针对金属薄板&#xff08;厚度通常在6mm以下&#xff09;的 一种综合冷加工工艺&#xff0c;包括冲裁、折弯、拉深、成形、锻压、铆合等&#xff0c; 其显著的特征是同一零件厚度一致。 2、钣…

【代码审计】star7th/showdoc:v3.2.4 Phar反序列化写webshell

目录 漏洞速览 复现 漏洞速览 微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 主要就是两步&#xff0c;sql注入拿到用户token&#xff0c;再以用户身份上传恶意phar包打phar反序列化 因为文件上传对用户权限没有限制&#xff0c;故本文对sql注入部分不做探讨。…

Python SMTP配置示例:如何群发邮件列表?

Python SMTP配置的高级技巧&#xff1f;API接口的正确使用方法&#xff1f; Python的SMTP库为我们提供了一种简单而强大的方式来实现邮件的群发功能。Aok将通过一个示例&#xff0c;向您展示如何使用Python SMTP配置来群发邮件列表&#xff0c;并在此过程中提及AokSend邮件API…

MulterError: Field name missing 报错解决

Request POST /FileUpload/chunkApi/upload/mProjectNews/Images failed with status code 500. MulterError: Field name missing. 原因&#xff1a;Multer是基于Busboy解析的表单参数信息&#xff0c;经定位发现是解析表单中文本参数时出现了null&#xff0c;故收到MISSION_…

掌握 NestJS 10.x:NestJS 结合 PostgreSQL 使用详解

NestJS 是一个用于构建高效、可扩展的 Node.js 服务端应用的框架。结合 PostgreSQL 数据库,可以为应用提供强大的数据存储和查询功能。本文将详细介绍如何在 NestJS 项目中集成和使用 PostgreSQL,并创建一个包含增加用户接口的完整示例。 1. 安装必要的依赖 首先,确保你的…

自动驾驶仿真:python和carsim联合仿真案例

文章目录 前言一、Carsim官方案例二、Carsim配置1、车辆模型2、procedure配置3、Run Control配置 三、python编写四、运行carsim五、运行python总结 前言 carsim内部有许多相关联合仿真的demo&#xff0c;simulink、labview等等都有涉及&#xff0c;这里简单介绍下python和car…