• 数组


    数组,在stl中有一个可变数组vector

    vector是一个单口动态数组 ;

    迭代器:vector《int》::iterator  it=a.begin();

                    a[2];

    插入:a.push_back();

    删除:a.popBack();

    例题:

    如果单一个结构数组,那也要 10^5*10^7,肯定会 TLE,所以分开两个 数组,有一个计数君,模拟二维数组;

    题目描述

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

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

    已知超市里共计不会超过 10710^7107 个寄包格子,aia_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


    代码:
    #include<iostream>
    #include<vector>
    #define max 100000
    using namespace std;
    struct node{
        vector<int> c,v;
        int s=0;
    }d[max];
    int main(){
        int n,q,ope,i,j,k;
        cin>>n>>q;
        for(int g=0;g<q;g++){
            cin>>ope;
            if(ope==1){
                cin>>i>>j>>k;
                d[i].s ++;
                d[i].c.push_back(j);
                d[i].v.push_back(k);  
            }
            if(ope==2){
                cin>>i>>j;
                int u;
                for( u=d[i].s -1;u>=0;u--){
                    if(d[i].c[u]==j){
                        cout<<d[i].v [u]<<endl;
                        break;
                    }
                }
                if(u<0)cout<<0<<endl;
            }
        }
    }
  • 相关阅读:
    第五周作业
    第四周作业
    第三周作业
    第二周作业
    第一周作业
    FileZilla连接centos7失败处理(SSH)
    单例设计模式
    JQuery中的$符号的作用----网摘
    浅谈关于“中文编程”是否会成为中国程序员的一颗“银弹”
    第8周作业 邱鹏 2013551628
  • 原文地址:https://www.cnblogs.com/wtx2333/p/12582197.html
Copyright © 2020-2023  润新知