acwing第84场周赛(4788,4789,4890)题解

news2025/1/16 18:38:34

4788. 最大数量

某商场在一天中一共来了 nn 个客人。

每个客人进入商场的具体时刻(精确到分钟)已知。

请你计算并输出在同一时刻(精确到分钟)进入商场的最大客人数量。

输入格式

第一行包含整数 nn。

接下来 nn 行,每行包含两个整数 h,mh,m,表示一个客人在 hh 时 mm 分进入商场。

所有时间都按照时间先后顺序给出。

时间采用 2424 小时制。

输出格式

一个整数,表示在同一时刻(精确到分钟)进入商场的最大客人数量。

数据范围

前 55 个测试点满足 1≤n≤101≤n≤10。
所有测试点满足 1≤n≤1051≤n≤105,0≤hi≤230≤hi≤23,0≤mi≤590≤mi≤59。

输入样例1:

4
8 0
8 10
8 10
8 45

输出样例1:

2

输入样例2:

3
0 12
10 11
22 22

输出样例2:

1

思路:

 第一题向来都是acwing周赛最水的题,这道题也不例外。把小时分钟换成一个数,然后用暴力枚举即可,时间复杂度不高。

具体步骤如下(定义,输入除外):

1.把时间转换为分钟制,就是一个数t。

2.把这个时间对应的数组元素计数, 也就是cnt[t]++,是客人在这个时间来的人数

3.答案不断更新,每次更新为之前的答案与这个时间客人来的人数的最大值

4.输出答案

完整代码如下(已AC):

//第84周周赛4788. 最大数量
#include <bits/stdc++.h>
using namespace std;
int cnt[100001];
int n; 
int main()
{
	scanf("%d", &n);
	int h, m;
	int ans = 0;
	for(int i = 1; i <= n; i++)
	{
		scanf("%d%d", &h, &m);
		int t = 60 * h + m;
		cnt[t]++;
		ans = max(ans, cnt[t]);//在同一个点上如果重复就加1,这样就直接算出最大值
	}
	cout << ans << endl;
    return 0;
}

看完第一题,接下来我们再来看第二题。先看题目:

4789. 前缀和序列

给定一个长度为 nn 的正整数序列 a1,a2,…,ana1,a2,…,an。

如果将该序列从小到大排序,则可以得到另一个长度为 nn 的正整数序列 b1,b2,…,bnb1,b2,…,bn。

现在,请你回答 mm 个询问,询问共分为以下两种:

  • 1 l r,请你计算并输出 ∑i=lrai∑i=lrai。
  • 2 l r,请你计算并输出 ∑i=lrbi∑i=lrbi。

输入格式

第一行包含整数 nn。

第二行包含 nn 个正整数 a1,a2,…,ana1,a2,…,an。

第三行包含整数 mm。

接下来 mm 行,每行包含一个询问,格式如题面描述。

输出格式

共 mm 行,每个询问输出一行答案。

数据范围

前 3 个测试点满足 1≤n,m≤10
所有测试点满足 1≤n,m≤10^{5},1≤ai≤10^{9},1≤l≤r≤n。

输入样例1:

6
6 4 2 7 2 7
3
2 3 6
1 3 4
1 1 6

输出样例1:

24
9
28

输入样例2:

4
5 5 2 3
10
1 2 4
2 1 4
1 1 1
2 1 4
2 1 2
1 1 1
1 3 3
1 1 3
1 4 4
1 2 2

输出样例2:

10
15
5
15
5
5
2
12
3
5

输入样例3:

4
2 2 3 6
9
2 2 3
1 1 3
2 2 3
2 2 3
2 2 2
1 1 3
1 1 3
2 1 4
1 1 2

输出样例3:

5
7
5
5
2
7
7
13
4

 思路:运用了前缀和算法(技巧)。

前缀和算法就是优化时间复杂度的一个算法。把每个元素都变成前一个元素数加上当前的。

核心代码如下:

sort(b + 1, b + 1 + n);
	for(long long i = 2; i <= n; i++)
	{
		a[i] = a[i - 1] + a[i];
	}
	for(long long i = 2; i <= n; i++)
	{
		b[i] = b[i - 1] + b[i];
	}

完整ac代码如下:

//第84周周赛4789. 前缀和序列
#include <bits/stdc++.h>
using namespace std;
long long a[100001], b[100001];
long long n, m;
int main()
{
	scanf("%lld", &n);
	for(long long i = 1; i <= n; i++)
	{
		scanf("%lld", &a[i]);
		b[i] = a[i];
	}
	sort(b + 1, b + 1 + n);
	for(long long i = 2; i <= n; i++)
	{
		a[i] = a[i - 1] + a[i];
	}
	for(long long i = 2; i <= n; i++)
	{
		b[i] = b[i - 1] + b[i];
	}
	scanf("%lld", &m);
	for(long long i = 1; i <= m; i++)
	{
		long long f;
		scanf("%lld", &f);
		if(f == 1)
		{
			long long l, r;
			scanf("%lld%lld", &l, &r);
			printf("%lld\n", a[r] - a[l - 1]);
		}
		else
		{
			long long l, r;
			scanf("%lld%lld", &l, &r);
			printf("%lld\n", b[r] - b[l - 1]);
		}
	}
    return 0;
}

再来看最后一道题。

4790. 买可乐

某商店目前库存可乐数量为 kk 瓶。

可乐的进货价格如下:

  • 整箱:cc 元/箱。每箱有 nn 瓶。
  • 单瓶:dd 元/瓶。

请问,为了使得库存可乐数量不低于 n×mn×m 瓶,该商店至少需要花费多少元钱来购进可乐。

显然,当 k≥n×mk≥n×m 时,无需购进可乐。

输入格式

第一行包含两个整数 c,dc,d。

第二行包含两个整数 n,mn,m。

第三行包含整数 kk。

输出格式

一个整数,表示最少花费的金额。

数围范据

前 44 个测试点满足 1≤c,d,n,m,k≤101≤c,d,n,m,k≤10。
所有测试点满足 1≤c,d,n,m,k≤1001≤c,d,n,m,k≤100。

输入样例1:

1 10
7 2
1

输出样例1:

2

输入样例2:

2 2
2 1
2

输出样例2:

0

 思路:

一共分为三种情况:

1.全买整箱的

2.全买单瓶的

3.能买整箱买整箱,剩下的零头买单瓶

最后求最小值即可,本题未优化。

完整ac代码如下:

//第84周周赛4790. 买可乐
#include <bits/stdc++.h>
using namespace std;
int c, d, m, n, k, xuyao, ans1, ans2, ans3, answer;
int main()
{
	cin >> c >> d >> n >> m >> k;
	if(k >= m * n) 
	{
		cout << 0 << endl;
		return 0;
	}
	xuyao = n * m - k;
	ans1 = xuyao / n * c + xuyao % n * d; 
	ans2 = xuyao / n * c + c; 
	ans3 = xuyao * d;
    answer = min(ans3, min(ans1, ans2));
    cout << answer << endl;
    return 0;
}

各位大佬们,都看到这了,点个关注顺便送个点赞吧,您的支持是我写博客最大的动力!!!

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

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

相关文章

二叉搜索树比起二叉树又有什么不一样呢?

二叉搜索树比起二叉树又有什么不一样呢&#xff1f;&#x1f3d0;什么是二叉搜索树&#x1f3d0;二叉搜索树的实现&#x1f3c0;节点类:&#x1f3c0;构造函数&#x1f3c0;析构函数&#x1f3c0;插入insert⚽非递归版本⚽递归版本&#x1f3c0;查找find⚽非递归版本⚽递归版本…

spring boot 八:SpringBoot响应返回xml数据

spring boot 八&#xff1a;SpringBoot响应返回xml数据 1 前言 根据DispatcherServlet源码分析&#xff0c;研究SpringBoot的Controller返回xml数据的一些方法&#xff0c;包含单独配置和全局配置返回xml数据两种方式。 依赖的SpringBoot版本&#xff1a; <parent>&l…

u盘有病毒怎么办?修复U盘,3个方法解决

U盘和外部的驱动器相比&#xff0c;它的体积更小&#xff0c;携带更加方便&#xff0c;可以轻松地与他人分享文件。虽然U盘使用很方便&#xff0c;但是有时会出现中病毒的情况。u盘有病毒怎么办&#xff1f;如果您也受到此问题的影响&#xff0c;我们可以提供一种有效的方法来修…

物联网架构实例—Ubuntu 安装Redis

1.准备更新apt-get源sudo apt-get update2.安装执行Redis 安装命令sudo apt-get install redis-server3.检查安装状态sudo /etc/init.d/redis-server status查看Redis运行进程ps -aux|grep redis4.将Redis添加到服务器启动项修改/etc/rc.localvim /etc/rc.local将下面的命令加到…

阿里云办公安全产品专家高传贵:零信任,让全球办公安全更简单

2022 年 8 月 30 日&#xff0c;阿里云用户组&#xff08;AUG&#xff09;第 9 期活动在北京举办。活动现场&#xff0c;阿里云办公安全产品专家高传贵&#xff0c;向参会企业代表分享了零信任&#xff0c;让全球办公安全更简单。本文根据演讲内容整理而成。 大家下午好。我今天…

内部类导致的内存泄漏

前两天刷文章偶然翻到一篇因使用非静态内部类时导致内存泄漏的问题,出于好奇自己也动手一试 什么叫内存泄漏 内存泄漏&#xff08;Memory Leak&#xff09;是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放&#xff0c;造成系统内存的浪费&#xff0c;导致程序…

WuThreat首个发布全球领先的身份安全云产品ITDR Cloud

随着数字化、人工智能&#xff0c;公有/私有云&#xff0c;物联网络及5G等技术的全面普及和迭代更新&#xff0c;身份管理建设作为企业重要的基础设施。然而现在黑客攻击手段复杂多样&#xff0c;在历年的实战攻防演习中有大量的应用系统与基础设施的的身份入口被攻破&#xff…

【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】

本文将使用一个来自NASA测试不同飞机机翼噪音的数据集&#xff0c;通过梯度下降、随机梯度下降、小批量随机梯度下降这3种优化算法进行模型训练&#xff0c;比较3种训练结果的差异。 目录1. 梯度下降、随机梯度下降、小批量随机梯度下降区别2. 读取训练数据3. 从零实现3种梯度算…

多线程与高并发(16)——线程池原理(ThreadPoolExecutor源码)

本文从ThreadPoolExecutor源码来理解线程池原理。 ThreadPoolExecutor使用了AQS、位操作、CAS操作等。在看这篇文章之前&#xff0c;需要具备以下知识&#xff1a; 多线程与高并发&#xff08;6&#xff09;——CAS详解&#xff08;包含ABA问题&#xff09; 多线程与高并发&…

腾讯三面:进程写文件过程中,进程崩溃了,文件数据会丢吗?

进程写文件&#xff08;使用缓冲 IO&#xff09;过程中&#xff0c;写一半的时候&#xff0c;进程发生了崩溃&#xff0c;会丢失数据吗&#xff1f; 答案&#xff0c;是不会的。 因为进程在执行 write &#xff08;使用缓冲 IO&#xff09;系统调用的时候&#xff0c;实际上是…

企业宣传片制作配音,我们该从哪里找?

优秀的品质的配音是制作优质企业视频必不可少的硬件条件。因此&#xff0c;许多公司视频配音或旁白声音是由专门从事配音行业的人员配音的。 首先是在宣传视频中配音的作用 1.宣传视频的配音为您建立企业形象 2.宣传视频的配音将为您打开市场 3.宣传视频的配音将使您的宣传…

深入理解Synchronized

Synchronized 底层原理 Synchronized的语义底层是通过一个 Monitor 的对象来完成&#xff0c;其实wait/notify等方法也依赖于 Monitor 对象&#xff0c;这就是为什么只有在同步的块中&#xff0c;拿到锁之后&#xff0c;才能调用wait/notify等方法&#xff0c;否则会抛出java.…

AI助力产品质量检验,基于YOLO实现瓷砖缺陷问题检测识别

在我之前的文章中也写过很多关于生产质检相关的实践文章&#xff0c;一直觉得这块是比较有意思的应用方向&#xff0c;做出来的模型能够以一种更加直观贴切的形式展现出来&#xff0c;瓷砖缺陷问题检测识别也是一个比较老的话题了&#xff0c;今天还是想拿出来具体实践做一下&a…

Golang.org/x库初探1——image库

Golang有一个很有意思的官方库&#xff0c;叫golang.org/x&#xff0c;x可能是extends&#xff0c;experimental&#xff0c;总之是一些在官方库中没有&#xff0c;但是又很有用的库。最近花点时间把这里有用的介绍一下。 Image库 提供更多的图像格式 golang.org/x/image库整…

Linux 网络驱动

1. linux 里面驱动三巨头&#xff1a;字符设备驱动、块设备驱动、网络设备驱动。2.嵌入式网络硬件分为两部分&#xff1a; MAC 和 PHY。如果一款芯片数据手册说自己支持网络&#xff0c;一般都是说的这款 SOC 内置 MAC&#xff0c; MAC 类似 I2C 控制器、SPI 控制器一样的外设。…

Java三大技术平台是什么?

为了使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发&#xff0c;SUN公司将Java划分为三个技术平台&#xff0c;它们分别是 JavaSE、 JavaEE和 JavaME。Java SE( Java Platform Standard Edition)标准版&#xff0c;是为开发普通桌面和商务应用程序提供的解…

零宽断言正则表达式替换方案

一、背景 safari浏览器不支持零宽断言正则表达式 二、解决方案 使用其他正则替换零宽断言正则&#xff08;包含&#xff1a;(?<)正向肯定预查、(?<!)正向否定预查、(?)反向肯定预查、(?!)反向否定预查&#xff09; 三、涉及场景 1、仅校验&#xff0c;不取值 如表…

首汽约车驶向极速统一之路!出行平台如何基于StarRocks构建实时数仓?

作者&#xff1a;王满&#xff0c;高级数据架构工程师首汽约车&#xff08;以下简称 “首约”&#xff09;是首汽集团为响应交通运输部号召&#xff0c;积极拥抱互联网&#xff0c;推动传统出租车行业转型升级&#xff0c;加强建设交通强国而打造的网约车出行平台。 在用车服务…

KernelSU: 内核 ROOT 方案, KernelSU KernelSU KernelSU 新的隐藏root防止检测 封号方案

大约一年多以前&#xff0c;我在一篇讲Android 上 ROOT 的过去、现在和未来https://mp.weixin.qq.com/s?__bizMjM5Njg5ODU2NA&mid2257499009&idx1&sn3cfce1ea7deb6e0e4f2ac170cffd7cc1&scene21#wechat_redirect 的文章中提到&#xff1a; 我认为&#xff0c;随…

三菱FX5U 多个表格运行指令 DRVTBL

简述该指令可以用GX Works3预先在表格数据中设定的控制方式的动作&#xff0c;&#xff08;连续或步进&#xff09; 执行多行。 本文演示了步进执行多行。指令解释2.1梯形图中的指令第一个参数&#xff1a;输出脉冲的轴编号 &#xff0c;K1,K2,K3,K4... 第二个参数&#xff1a;…