HDU-#4858プロジェクト管理(アナログ+vector)
1313 ワード
点と点の関係を与え、2つの操作を行い、1時にノードの値を与え、対応する値を増やし、0時に隣接ノードのエネルギー値の和を問い合わせる.
解題構想:シミュレーション問題、図論やSTLのvectorを習ったことがあれば、この問題は簡単です.直接この過程をシミュレートしてvectorで保存して、とても速くて便利な計算ができて、詳しくはcodeを参照します.
テーマの出所:http://acm.hdu.edu.cn/showproblem.php?pid=4858
code:
解題構想:シミュレーション問題、図論や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