• 【洛谷 P3613】【深基15.例2】寄包柜 题解(映射)


    【深基15.例2】寄包柜

    题目描述

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

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

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

    输入格式

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

    接下来 q q q 个整数,表示一次操作。

    输出格式

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

    样例 #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

    提示

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


    思路

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


    AC代码

    #include 
    #include 
    #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
  • 相关阅读:
    LeetCode287之寻找重复数(相关话题:二分查找,快慢指针)
    gstreamer registry文件
    C语言题目要求实现方法总结(1-10)
    【创建公共的swagger3组件】Spring Cloud 14
    移位操作搞定两数之商
    基于R-Tree的地理空间数据分析加速
    TIDB - 分布式数据库
    跟着江南一点雨学习springmvc(3)
    PermissionX 1.6发布,支持Android 12,可能是今年最大的版本升级
    基于Flask+Echarts的中药材价格分析与可视化项目
  • 原文地址:https://blog.csdn.net/qq_34988204/article/details/133415968