这道题就是是怎么使用vector。。。。ACM/ICPC竞赛之STL--vector链接 http://blog.csdn.net/Carp_and_wind/article/details/8801919
摘要:vector的基本操作有:
s[i]直接以下标方式访问容器中的元素。
s.front()
返回首元素。
s.back()
返回尾元素。
s.push_back(x)
向表尾插入元素x。
s.size()
返回表长。
s.empty()
当表空时,返回真,否则返回假。
s.pop_back()
删除表尾元素。
s.begin()
返回指向首元素的随机存取迭代器。
s.end()
返回指向尾元素的下一个位置的随机存取迭代器。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858
代码:
#include<stdio.h>
#include<string.h>
#define MAXN 100020
#include<vector>
using namespace std;
vector<int> s[MAXN];
int sum[MAXN];
int main()
{
int t, n, m, i, j, a, b;
scanf("%d", &t);
while(t --){
memset(s, 0, sizeof(s));
memset(sum, 0, sizeof(sum));
scanf("%d%d", &n, &m);
for(i = 0; i < m; i ++){
scanf("%d%d", &a, &b);
s[a].push_back(b);
s[b].push_back(a);
}
int q, cmd;
scanf("%d", &q);
while(q --){
scanf("%d", &cmd);
if(cmd){
int ans = 0;
scanf("%d", &a);
for(i = 0; i < s[a].size(); i ++){
ans += sum[s[a][i]];
}
printf("%d\n", ans);
}
else{
scanf("%d%d", &a, &b);
sum[a]+=b;
}
}
}
return 0;
}