我去有毒 这么简单的题 因为初始化弄错找了好久 半天找不到错误
最开始是这么初始化的 主要是忘记了n值的意思 然后一直WA..
最开始看题的时候还觉得:告诉我有u个点有什么作用啊 没用啊 哎 惨痛教训
主要是题目没看好 下次一定要注意
vector在我看来主要作用就是为了节省空间 然后vector的读取也很方便 特别是需要一个元素未知的顺序表的时候 为了防止空间的浪费就可以用vector了
否则这道题你总不能定义一个二维
数组吧 那估计还没编译就炸了
多读题 有点拗口 但是多读几遍就好了
for(int i=0;i<=n;i++)
obj[i].clear();
for(int i=0;i<=u;i++) 正确
obj[i].clear();
#include <iostream>
#include <algorithm>
#include <vector>
#include <string.h>
using namespace std;
vector<int> obj[100005];
int c[100005];
int main()
{
int n,u,v,a,b,q;
scanf("%d",&n);
while(n--)
{
memset(c,0,sizeof(c));
scanf("%d%d",&u,&v);
for(int i=0;i<=u;i++)
obj[i].clear();
for(int i=0;i<v;i++)
{
scanf("%d%d",&a,&b);
obj[a].push_back(b);
obj[b].push_back(a);
}
cin>>q;
while(q--)
{
int cmd,sum=0;
scanf("%d",&cmd);
if(cmd==0)
{
scanf("%d%d",&u,&v);
c[u]+=v;
}
if(cmd==1)
{
scanf("%d",&u);
for(int i=0;i<obj[u].size();i++)
{
sum+=c[obj[u][i]];
}
printf("%d\n",sum);
}
}
}
}