【深基15.例2】寄包柜
作者:互联网
题目链接https://www.luogu.com.cn/problem/P3613
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 const int MAX = 100005; 5 struct node 6 { 7 //s用来记录desk[i]的元素个数,表示第i个柜子已存s次物品 8 //num表示第i个柜子的第num个格子存入一个物品 9 //w表示该格子存入的物品 10 vector<int> num,w;//用vector动态数组节省内存,以防MLE 11 int s = 0; 12 } desk[MAX]; 13 int main() 14 { 15 int n,q; 16 cin>>n>>q; 17 while(q--) 18 { 19 int x,a,b,c; 20 cin>>x; 21 if(x == 1) 22 { 23 cin>>a>>b>>c; 24 desk[a].s++; //第a个柜子存入物品 25 desk[a].num.push_back(b);//第b个格子中 26 desk[a].w.push_back(c);//存入物品c 27 } 28 else 29 { 30 cin>>a>>b; 31 for(int i = desk[a].s - 1;i >= 0;i--)//从后往前,因为格子存放会有更新 32 { 33 if(desk[a].num[i] == b)//如果查询到该柜子的格子 34 { 35 cout<<desk[a].w[i]<<endl;//输出该格子内的物品 36 break;//因此时是最新的存放情况,所以有解后需要直接退出查询 37 } 38 } 39 } 40 } 41 return 0; 42 }
标签:15,格子,int,深基,cin,包柜,num,desk,物品 来源: https://www.cnblogs.com/tflsnoi/p/13495116.html