結果
問題 | No.1637 Easy Tree Query |
ユーザー |
![]() |
提出日時 | 2021-08-07 16:29:50 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 79 ms / 2,000 ms |
コード長 | 1,531 bytes |
コンパイル時間 | 1,073 ms |
コンパイル使用メモリ | 110,232 KB |
実行使用メモリ | 12,964 KB |
最終ジャッジ日時 | 2024-09-18 19:33:08 |
合計ジャッジ時間 | 4,996 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 33 |
ソースコード
#include <cmath>#include <deque>#include <algorithm>#include <iterator>#include <list>#include <tuple>#include <map>#include <unordered_map>#include <queue>#include <set>#include <unordered_set>#include <stack>#include <string>#include <vector>#include <fstream>#include <iostream>#include <functional>#include <numeric>#include <iomanip>#include <stdio.h>#include <assert.h>#include <cstring>//eolibraries#define lnf 3999999999999999999#define inf 999999999#define fi first#define se second#define pb push_back#define ll long long#define ld long double#define all(c) (c).begin(),(c).end()#define sz(c) (int)(c).size()#define make_unique(a) sort(all(a)),a.erase(unique(all(a)),a.end())#define pii pair <int,int>#define rep(i,n) for(int i = 0 ; i < n ; i++)#define drep(i,n) for(int i = n-1 ; i >= 0 ; i--)#define crep(i,x,n) for(int i = x ; i < n ; i++)#define vi vector <int>#define vec(...) vector<__VA_ARGS__>#define _3fFlcJq ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)//eodefineusing namespace std;const int mxn=12000;int main(){_3fFlcJq;int n,q;cin>>n>>q;vec(vi) adj(n,vi());rep(i,n-1){int u,v;cin>>u>>v;u--,v--;adj[u].pb(v);adj[v].pb(u);}vi dp(n,0);auto dfs=[&](auto self,int v,int par)->void{dp[v]=1;for(auto u : adj[v]){if(u==par) continue;self(self,u,v);dp[v]+=dp[u];}};dfs(dfs,0,-1);ll ans=0;rep(i,q){ll v,cost;cin>>v>>cost;v--;ans+=(ll)dp[v]*cost;cout<<ans<<"\n";}//return 0;}