全RE~~

P3613 【深基15.例2】寄包柜

@[zll654321](/user/965592) ~~你这vector里套vector是什么操作啊(恼)~~ 给你改了一下,这样就能AC了awa ```cpp #include<bits/stdc++.h> using namespace std; int i,j,opt,k,n,q; const int N = 114514; vector<int>v[N]; int main() { cin>>n>>q; while(q--) { cin>>opt; if(opt==1) { cin>>i>>j>>k; if(v[i].size()<j+1) v[i].resize(j+1); v[i][j]=k; } else{ cin>>i>>j; cout<<v[i][j]<<endl; } } return 0; } ```
by __DIOsama__ @ 2023-08-16 16:08:38


@[DIO__](/user/751866) 谢谢DALAO,可是vector里套vector不是vector二维数组的形式嘛?
by Studyingson @ 2023-08-16 16:15:46


@[zll654321](/user/965592) az我反正没用过,不敢用,我一般都是定一个vector的一维数组然后当二维数组用awa
by __DIOsama__ @ 2023-08-17 12:11:18


@[DIO__](/user/751866) 你还可以尝试一下用map~~(如果没事干)~~
by lao_wang @ 2023-08-20 15:03:12


@[lao_wang](/user/701408) ~~我试过std::map<std::map<std::vector<int>,int>,int>~~
by __DIOsama__ @ 2023-08-20 15:13:59


@[lao_wang](/user/701408) ~~锕那个是别的题的()~~
by __DIOsama__ @ 2023-08-20 18:20:02


@[DIO__](/user/751866) ~~啊眼睛不太好看错人了以为是楼主~~
by lao_wang @ 2023-08-20 18:29:14


vector 需要初始化大小的,否则默认为空,所以你直接访问v[i],内存越界就RE了,需要 ```v.resize(n + 1);```
by Sqj147 @ 2023-10-12 10:35:15


```cpp ``` ```cpp #include<bits/stdc++.h> using namespace std; int n,q,opt,i,j,k; int main(){ cin >>n >>q;//寄包柜个数和询问次数 vector<vector<int> > locker (n+1);//初始化,一共0到n号寄包柜 while (q--){ cin >> opt; if(opt == 1){//存包操作 cin >>i>>j>>k; if(locker[i].size()<j+1)//如果这个寄包柜不够大 locker[i].resize(j+1);//就扩大新的寄包柜,直到能装下 locker[i][j]= k; } else{ cin >> i >>j; cout<<locker[i][i]<<endl; //像数组一样输出 } return 0; } ``` @[Sqj147](/user/646353) 为什么只有20分
by Haiiao @ 2024-02-28 11:37:37


|