hdu4585 amp; BestCoder Round #1 项目管理(vector应用)
生活随笔
收集整理的這篇文章主要介紹了
hdu4585 amp; BestCoder Round #1 项目管理(vector应用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主題鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=4858
項目管理
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 760????Accepted Submission(s): 262Problem 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標號。
代碼例如以下: G++提交超時, C++AC; #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <queue> #include <vector> using namespace std; const int N=100017; int c[N]; vector<int>p[N]; int main() {int T;int n, m, a, b;int Q;int i, j;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);for(i = 1; i <= n; i++)p[i].clear();for(i = 1; i <= m; i++){scanf("%d%d",&a,&b);p[a].push_back(b);//由于要求相鄰的,分別加入p[b].push_back(a);}scanf("%d",&Q);int op, u, v;memset(c,0,sizeof(c));for(i = 1; i <= Q; i++){scanf("%d",&op);if(op == 0){scanf("%d%d",&u,&v);c[u]+=v;}else if(op == 1){scanf("%d",&u);int ans = 0;int size = p[u].size();for(i = 0; i < size; i++){ans+=c[p[u][i]];}printf("%d\n",ans);}}}return 0; }
版權聲明:本文博客原創文章。博客,未經同意,不得轉載。
轉載于:https://www.cnblogs.com/hrhguanli/p/4624482.html
總結
以上是生活随笔為你收集整理的hdu4585 amp; BestCoder Round #1 项目管理(vector应用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网友的】《一个程序猿的生命周期》读后感
- 下一篇: jyphon 环境变量配置