HDU-#4858プロジェクト管理(アナログ+vector)


点と点の関係を与え、2つの操作を行い、1時にノードの値を与え、対応する値を増やし、0時に隣接ノードのエネルギー値の和を問い合わせる.
解題構想:シミュレーション問題、図論やSTLのvectorを習ったことがあれば、この問題は簡単です.直接この過程をシミュレートしてvectorで保存して、とても速くて便利な計算ができて、詳しくはcodeを参照します.
テーマの出所:http://acm.hdu.edu.cn/showproblem.php?pid=4858
code:
#include 
#include 
#include 
#include 
using namespace std;

const int MAXN = 100000+10;
int n,m,t,a,b,u,v,q,cmd,node[MAXN],ans;
vector map[MAXN];

int main(){
    scanf("%d",&t);
    while(t--){
        memset(node,0,sizeof(node)); //   
        for(int i=1;i<=MAXN;i++)  //  vector
            map[i].clear();
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++){  //      
            scanf("%d%d",&a,&b);
            map[a].push_back(b); //   ,      
            map[b].push_back(a);
        }
        scanf("%d",&q);
        while(q--){
            scanf("%d",&cmd); //    
            if(cmd==0){
                scanf("%d%d",&u,&v);  //      
                node[u]+=v;
            }
            if(cmd==1){
                ans=0;
                scanf("%d",&u);
                for(int i=0;i