結果
問題 |
No.1637 Easy Tree Query
|
ユーザー |
![]() |
提出日時 | 2023-11-06 11:01:39 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 85 ms / 2,000 ms |
コード長 | 910 bytes |
コンパイル時間 | 1,246 ms |
コンパイル使用メモリ | 124,584 KB |
最終ジャッジ日時 | 2025-02-17 19:48:22 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 33 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> #include<cstring> #include<cassert> #include<cmath> #include<ctime> #include<iomanip> #include<numeric> #include<stack> #include<queue> #include<map> #include<unordered_map> #include<set> #include<unordered_set> #include<bitset> #include<random> #include<functional> #include<utility> using namespace std; int N,Q,ch[1 << 17]; vector<int> G[1 << 17]; void dfs(int u,int p) { ch[u] = 1; for(int v:G[u]) if(v != p) { dfs(v,u); ch[u] += ch[v]; } } void solve() { cin >> N >> Q; for(int i = 1;i < N;i++) { int u,v; cin >> u >> v; u--; v--; G[u].push_back(v); G[v].push_back(u); } dfs(0,-1); long long ans = 0; for(;Q--;) { int p,x; cin >> p >> x; p--; ans += (long long)x*ch[p]; cout << ans << "\n"; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) solve(); }