標籤:des style http java color os
暴力...
專案管理
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 537 Accepted Submission(s): 189
Problem Description我們建造了一個大項目!這個項目有n個節點,用很多邊串連起來,並且這個項目是連通的!
兩個節點間可能有多條邊,不過一條邊的兩端必然是不同的節點。
每個節點都有一個能量值。
現在我們要編寫一個專案管理軟體,這個軟體呢有兩個操作:
1.給某個項目的能量值加上一個特定值。
2.詢問跟一個項目相鄰的項目的能量值之和。(如果有多條邊就算多次,比如a和b有2條邊,那麼詢問a的時候b的權值算2次)。
Input第一行一個整數T(1 <= T <= 3),表示測試資料的個數。
然後對於每個測試資料,第一行有兩個整數n(1 <= n <= 100000)和m(1 <= m <= n + 10),分別表示點數和邊數。
然後m行,每行兩個數a和b,表示a和b之間有一條邊。
然後一個整數Q。
然後Q行,每行第一個數cmd表示操作類型。如果cmd為0,那麼接下來兩個數u v表示給項目u的能量值加上v(0 <= v <= 100)。
如果cmd為1,那麼接下來一個數u表示詢問u相鄰的項目的能量值之和。
所有點從1到n標號。
Output對每個詢問,輸出一行表示答案。
Sample Input
13 21 21 360 1 150 3 41 11 30 2 331 2
Sample Output
41515
AuthorCLJ
SourceBestCoder Round #1
#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;const int maxn=110000;vector<int> g[maxn];int n,m;int du[maxn];int main(){ int T_T; scanf("%d",&T_T); while(T_T--) { scanf("%d%d",&n,&m); for(int i=0;i<=n+10;i++) g[i].clear(),du[i]=0; for(int i=0;i<m;i++) { int a,b; scanf("%d%d",&a,&b); g[a].push_back(b); g[b].push_back(a); } int q; scanf("%d",&q); while(q--) { int c,a,b; scanf("%d",&c); if(c==0) { scanf("%d%d",&a,&b); du[a]+=b; } else { scanf("%d",&a); int ret=0; for(int i=0,sz=g[a].size();i<sz;i++) ret+=du[g[a][i]]; printf("%d\n",ret); } } } return 0;}