首页 > 其他分享 >w3-2 寄包柜

w3-2 寄包柜

时间:2023-04-19 22:34:32浏览次数:34  
标签:num1 num2 int cin 包柜 w3 judge 第几个

第一种方法:数组10^5*10^5 超范围

第二种方法:vector(mle)

//较麻烦,并且通过不了hack,需要手动搜索查询
#include <iostream>
#include <vector>
using namespace std;
int n,p,judge,num1,num2,k;
struct num{//格子
    int index,k;//第index个格子,放的是k
};
struct cupboard{
    vector<num>b;//柜子的格子,非连续
};
int main() {
    cin>>n>>p;
    cupboard a[n+1];
    for(int i=0;i<p;++i){
        cin>>judge;//操作模式
        if(judge==1){
            cin>>num1>>num2>>k;//第几个柜子第几个格子放了几
            if(!k){//清数
                for(int j=0;j<a[num1].b.size();++j){//遍历第num1个柜子的格子
                    if(a[num1].b[j].index==num2){//如果已经有该数字,清除该格子
                        a[num1].b.erase(a[num1].b.begin()+j);
                    }
                }
            }
            else{//放数
                num tmp;
                tmp.index=num2;
                tmp.k=k;
                a[num1].b.push_back(tmp);
            }
        }
        else{
            cin>>num1>>num2;
            for(int j=0;j<a[num1].b.size();++j){
                if(a[num1].b[j].index==num2){
                    cout<<a[num1].b[j].k<<endl;
                }
            }
        }
    }
    return 0;
}

需要0(n)去搜索有没有这个k

第三种方法:map

    #include <iostream>
    #include <map>
    using namespace std;
    int n,p,judge,num1,num2,k;

    int main() {
        cin>>n>>p;
        map<pair<int,int>,int>a;//运用pair可用o(1)时间找出第几个柜子的第几个格子的k
        for(int i=0;i<p;++i){
            cin>>judge;
            if(judge==1){
                cin>>num1>>num2>>k;
                if(!k){
                    a.erase({num1,num2});
                }
                else{
                    a[{num1,num2}]=k;
                }
            }
            else{
                cin>>num1>>num2;
                cout<<a[{num1,num2}]<<endl;
            }
        }
        return 0;
    }

 

标签:num1,num2,int,cin,包柜,w3,judge,第几个
From: https://www.cnblogs.com/lijunjie03/p/17334904.html

相关文章

  • w3-4 后缀表达式
    #include<iostream>#include<stack>usingnamespacestd;longlongtmp1,tmp2,tmp3;intmain(){stack<longlong>a;charch;cin>>ch;while(ch!='@'){//到@停止if(ch>='0'&&ch<=&......
  • Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试
    前言  之前特定的mysql版本msvc版本已经调通了,但是为了更好的跨平台,所以选择用mingw32版本,于是需要编译mysql驱动的mingw32版本的驱动库,以便提供给qt连接mysql使用。<br......
  • 在分布式追踪系统中使用 W3C Trace Context
    在分布式追踪系统中使用W3CTraceContext 在分布式追踪系统中使用W3CTraceContexthttps://dev.to/luizhlelis/using-w3c-trace-context-standard-in-distribu......
  • .NET Core 3.0-preview3 发布
    .NETCore3.0Preview3已经发布,框架和ASP.NETCore有许多有趣的更新。这是最重要的更新列表。下载地址:​​https://aka.ms/netcore3download​​。​​.NETCore3.0......
  • Day 01 1.1 浏览器发展历史 w3c标准
    软件架构体系:(1)、C/S:client/Server客户端/服务端QQ,酷狗,爱奇艺,王者荣耀等3D游戏(2)、B/S:browser/Server浏览器/服务端百度/淘宝/京东/网页版的爱奇艺/基于......
  • Sharing assemblies between w3wp processes for reduce memory usage
    Problem Wearepublishingalotofmicroservicesononemachine,i.e.:30instancesandeveryoneuse150–300mb.Alotofmicroservicesusethesamelibra......
  • mingw32编译libssh2 转载的文章
    由于实习工作中要用到基于sftp协议开发一个网络程序,同时要实现运行在Windows平台上,找来找去就这个libssh2库好用,在网络上算是有那么一点点的文档可以看。这个库还不是现成......
  • Ubuntu18.04安装glfw3.3
    https://blog.csdn.net/qq_38196982/article/details/100748027?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-10074......
  • Linux 下qW3xT.2,解决挖矿病毒
    早上开启电脑,连接服务器,使用top查看cpu状态。结果显示进程占用cpu99%以上。在网上百度,了解到qW3xT.2是一个挖矿病毒。也就是说别人利用你的电脑挖矿。谋取利益。解决办......
  • ASP.NET Memory Issue: High memory usage in a 64bit w3wp.exe process
    ASP.NETMemoryIssue:Highmemoryusageina64bitw3wp.exeprocess August9,2007   9minutereadBydefaultwhenyourunIISona64-bitmachineyouwil......