【深基15.例2】寄包柜
生活随笔
收集整理的這篇文章主要介紹了
【深基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.例2】寄包柜的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: realme 真我与中国电信天翼终端签订
- 下一篇: 无法复制winevt中的文件_u盘文件无