Studyingson @ 2023-08-16 15:59:37
#include<bits/stdc++.h>
using namespace std;
int i,j,opt,k,n,q;
vector<vector<int> >v;
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
@zll654321
你这vector里套vector是什么操作啊(恼)
给你改了一下,这样就能AC了awa
#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 Studyingson @ 2023-08-16 16:15:46
@DIO__ 谢谢DALAO,可是vector里套vector不是vector二维数组的形式嘛?
by __DIOsama__ @ 2023-08-17 12:11:18
@zll654321 az我反正没用过,不敢用,我一般都是定一个vector的一维数组然后当二维数组用awa
by lao_wang @ 2023-08-20 15:03:12
@DIO__ 你还可以尝试一下用map(如果没事干)
by __DIOsama__ @ 2023-08-20 15:13:59
@lao_wang
我试过std::map<std::map<std::vector<int>,int>,int>
by __DIOsama__ @ 2023-08-20 18:20:02
@lao_wang 锕那个是别的题的()
by lao_wang @ 2023-08-20 18:29:14
@DIO__ 啊眼睛不太好看错人了以为是楼主
by Sqj147 @ 2023-10-12 10:35:15
vector 需要初始化大小的,否则默认为空,所以你直接访问v[i],内存越界就RE了,需要 v.resize(n + 1);
by Haiiao @ 2024-02-28 11:37:37
#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 为什么只有20分