rainbow_MMM @ 2025-01-10 20:59:49
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define exit(a) return a;
#define endl '\n'
using namespace std;
vector<int>v[100005];
int main(){
int n,Q;
cin>>n>>Q;
while(Q--){
int op;
cin>>op;
if(op==1){
int i,j,k;
cin>>i>>j>>k;
v[i][j]=k;
}
else{
int i,j;
cin>>i>>j;
cout<<v[i][j]<<endl;
}
}
exit(0);
}
rt......
by xlpri @ 2025-01-10 21:22:32
RE最常见的情况就是数组开小了,但vector再加上1e7准MLE..
by xlpri @ 2025-01-10 21:26:59
最好直接用map+数组做,但是写不好容易爆栈
by nnh915 @ 2025-01-10 21:27:29
@rainbow_MMM vector不像普通的数组,它初始化为没有元素,需要通过 push_back() 添加才可以,所以不能直接像桶一样去使用。
by nnh915 @ 2025-01-10 21:29:32
所以如果在vector数组没有增加元素的情况下,访问了的是越界的位置,所以报 RE 的错误。
by nnh915 @ 2025-01-10 21:31:27
这道题好像不适合用 vector 这个容器,可以看看题解来学习如何使用 stl 中的 map 压缩存储空间。
by xlpri @ 2025-01-10 21:32:52
可以试试先做个map映射,key值等于所求柜号,value值等于所求柜号所在的输入顺序的位数