zoukankan      html  css  js  c++  java
  • 洛谷 P3613 【深基15.例2】寄包柜

    题目描述

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

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

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

    输入格式

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

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

    输出格式

    对于查询操作时,输出答案。

    输入输出样例

    输入 #1
    5 4
    1 3 10000 114514
    1 1 1 1
    2 3 10000
    2 1 1
    输出 #1
    114514
    1

    分析
    二维map练习

    代码

    #include<bits/stdc++.h>
    using namespace std;
    
    int n,q;
    
    int main()
    {
        cin>>n>>q;
        map<int,map<int,int> > cb;
        int f;//标记操作
        for(int i=1;i<=q;i++)
        {
            cin>>f;
            if(f==1)
            {
                int num1;
                int num2;
                int num3;
                cin>>num1>>num2>>num3;
                cb[num1][num2]=num3;
            }
            else
            {
                int num1;
                int num2;
                cin>>num1>>num2;
                cout<<cb[num1][num2]<<endl;
            }
        }
        return 0;
    }
    
    
    
     
  • 相关阅读:
    python note 30 断点续传
    python note 29 线程创建
    python note 28 socketserver
    python note 27 粘包
    python note 26 socket
    python note 25 约束
    Sed 用法
    python note 24 反射
    python note 23 组合
    python note 22 面向对象成员
  • 原文地址:https://www.cnblogs.com/KyleDeng/p/15577357.html
Copyright © 2011-2022 走看看