首页 > 其他分享 >P3613 【深基15.例2】寄包柜——使用map代替数组

P3613 【深基15.例2】寄包柜——使用map代替数组

时间:2024-12-30 09:11:42浏览次数:1  
标签:map le 15 格子 int 深基 包柜 include

题目描述

超市里有 \(n(1\le n\le10^5)\) 个寄包柜。每个寄包柜格子数量不一,第 \(i\) 个寄包柜有 \(a_i(1\le a_i\le10^5)\) 个格子,不过我们并不知道各个 \(a_i\) 的值。对于每个寄包柜,格子编号从 1 开始,一直到 \(a_i\)。现在有 \(q(1 \le q\le10^5)\) 次操作:

  • 1 i j k:在第 \(i\) 个柜子的第 \(j\) 个格子存入物品 \(k(0\le k\le 10^9)\)。当 \(k=0\) 时说明清空该格子。
  • 2 i j:查询第 \(i\) 个柜子的第 \(j\) 个格子中的物品是什么,保证查询的柜子有存过东西。

已知超市里共计不会超过 \(10^7\) 个寄包格子,\(a_i\) 是确定然而未知的,但是保证一定不小于该柜子存物品请求的格子编号的最大值。当然也有可能某些寄包柜中一个格子都没有。

输入格式

第一行 2 个整数 \(n\) 和 \(q\),寄包柜个数和询问次数。

接下来 \(q\) 个行,每行有若干个整数,表示一次操作。

输出格式

对于查询操作时,输出答案,以换行隔开。

样例 #1

样例输入 #1

5 4
1 3 10000 118014
1 1 1 1
2 3 10000
2 1 1

样例输出 #1

118014
1

提示

\(\text{upd 2022.7.26}\):新增加一组 Hack 数据。

我的作答

方法1

#include <stdio.h>
#include <vector>
int main() {
	int n,q;
	scanf("%d %d",&n,&q);
	typedef struct {
		int pos;
		int k;
	} ITEM;
	std::vector<std::vector<ITEM>> a(n);
	for (int i=0;i<q;i++) {
		int method;
		int ii,jj,kk;
		scanf("%d",&method);
		if (method==1) {
			scanf("%d %d %d",&ii,&jj,&kk);
			if (kk==0) {
				for (int j=0;j<a[ii-1].size();j++) {
					if (a[ii-1][j].pos==jj) {
						a[ii-1].erase(a[ii-1].begin()+j);
					}
				}
			} else {
				ITEM item;
				item.pos = jj;
				item.k = kk;
				a[ii-1].push_back(item);
			}
		} else if (method==2) {
			scanf("%d %d",&ii,&jj);
			for (int j=0;j<a[ii-1].size();j++) {
				if (a[ii-1][j].pos==jj) {
					printf("%d\n",a[ii-1][j].k);
				}
			}
		}
	}
}

方法2 (利用map)

#include <stdio.h>
#include <map>
using namespace std;
int main() {
	int n,q;
	map<long long, int> b;
	scanf("%d %d",&n,&q);
	for (int p=0;p<q;p++) {
		int m,i,j,k;
		scanf("%d",&m);
		if (m==1) {
			scanf("%d %d %d",&i,&j,&k);
			b[100000*i+j]=k;
		}
		else if (m==2) {
			scanf("%d %d",&i,&j);
			printf("%d\n",b[100000*i+j]);
		}
	}
}

标签:map,le,15,格子,int,深基,包柜,include
From: https://www.cnblogs.com/xiins/p/18640010

相关文章

  • 15.保护环境主题网页 Web前端网页制作 大学生期末大作业 html+css
    目录一、前言二、网页效果三、代码展示1.HTML2.CSS四、更多推荐一、前言本案例以保护环境为主题设计,应用html+css,dic+css布局,代码简单。本网页支持如Dreamweaver、HBuilder、Text、Vscode等任意html编辑软件进行编辑修改;支持包括IE、Firefox、Chrome、Safari主流浏......
  • Spring Boot引起的“堆外内存泄漏”排查及经验总结15
    背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于SpringBoot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M-......
  • 视野修炼-技术周刊第115期 | 现代的 Nodejs 能力
    欢迎来到第115期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • [COCI2015-2016#2] DRZAVA
    思路先把赛时想法搬一部分过来转化题意,对于\(n\)个带权\(k\)的点,任意两点\(i,j\)之间有双向连边,其边权为\(w_{i,j}=d_{i,j}\),求一最小阈值\(C\),满足对于所有\(w\leqC\)的边连接后,存在一个连通块\(G\),使得\[\sum_{i=1}^{\lvertG\rvert}......
  • 如何解决系统升级到 macOS 15.2 Sequoia 后 Siri 无法语音回复问题 All In One
    如何解决系统升级到macOS15.2Sequoia后Siri无法语音回复问题AllInOneAppleMBPsolutionSiriResponsesVoicefeedbackdemos(......
  • 2024-11-28《关于mybatis创建的mapper映射路径不对导致的系列报错》
    关于mybatis创建的mapper映射路径不对导致的系列报错 今天在写mybatis项目的时候,使用注解发现无法使用别名,添加ResultMap的时候直接报错显示无法解析。经过百度了好久也是成功的发现了问题的所在,就是这个:这个路径创建的时候我以为创建的是分级目录,实际上创建成为了com.inn......
  • 2024-11-15《继续c#学习-多态性》
    多态性静态多态性函数重载  函数重载就是一个函数可以通过传入不同的参数来进行不同的运算,例如: usingSystem; namespacePolymorphismApplication { publicclassTestData { publicintAdd(inta,intb,intc) { returna+......
  • MLE和MAP估计
    最大似然估计(MaximumLikelihoodEstimation,MLE)和最大后验估计(MaximumAPosterioriEstimation,MAP)都是参数估计方法,用于从数据中推断模型参数的最优值。它们的主要区别在于是否考虑先验知识。1.最大似然估计(MLE)定义:最大似然估计通过找到使观测数据最可能出现的参数值来......
  • 2024-2025-1 学号20241315《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标<写上具体方面>《C语言程序设计》第13-14章并完成云班课测试作业正文https://www.cnbl......
  • 2024-2025-1 20241415《计算机基础与程序设计》第十四周学习总结
    2024-2025-120241415《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标自学《C语言程序设计》第13-14章作业正文https:......