【深基15.例2】寄包柜

题目描述

超市里有 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据 个寄包柜。每个寄包柜格子数量不一,第 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_02 个寄包柜有 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_#include_03 个格子,不过我们并不知道各个 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_ci_04 的值。对于每个寄包柜,格子编号从 1 开始,一直到 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_ci_04。现在有 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_06 次操作:

  • 1 i j k:在第 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_02 个柜子的第 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_08 个格子存入物品 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_#include_09。当 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_#include_10 时说明清空该格子。
  • 2 i j:查询第 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_02 个柜子的第 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_08 个格子中的物品是什么,保证查询的柜子有存过东西。

已知超市里共计不会超过 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_#include_13 个寄包格子,【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_ci_04 是确定然而未知的,但是保证一定不小于该柜子存物品请求的格子编号的最大值。当然也有可能某些寄包柜中一个格子都没有。

输入格式

第一行 2 个整数 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_ci_15【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_16,寄包柜个数和询问次数。

接下来 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_数据_16 个整数,表示一次操作。

输出格式

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

样例 #1

样例输入 #1
5 4
1 3 10000 118014
1 1 1 1
2 3 10000
2 1 1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
样例输出 #1
118014
1
  • 1.
  • 2.

提示

【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)_ci_18:新增加一组 Hack 数据。


思路

初始化二维数组需要开辟很大的空间,导致内存溢出。 映射倒是很适合存储这种数据。


AC代码

#include <iostream>
#include <map>
#define AUTHOR "HEX9CF"
using namespace std;

int n, q;
map<int, map<int, int>> chest;

int main()
{
    cin >> n >> q;
    while (q--)
    {
        int cmd, i, j, k;
        cin >> cmd;
        switch (cmd)
        {
        case 1:
            cin >> i >> j >> k;
            chest[i][j] = k;
            break;
        case 2:
            cin >> i >> j;
            cout << chest[i][j] << endl;
            break;
        }
    }
    return 0;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.