結果
問題 | No.1637 Easy Tree Query |
ユーザー |
![]() |
提出日時 | 2021-08-07 16:51:26 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 204 ms / 2,000 ms |
コード長 | 1,535 bytes |
コンパイル時間 | 3,132 ms |
コンパイル使用メモリ | 160,624 KB |
実行使用メモリ | 14,080 KB |
最終ジャッジ日時 | 2024-09-18 19:33:55 |
合計ジャッジ時間 | 9,317 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 33 |
ソースコード
#include <iostream>#include <iomanip>#include <cstdio>#include <queue>#include <cstring>#include <vector>#include <map>#include <algorithm>#include <cctype>#include <cmath>#include <bitset>#include <set>#include <deque>#include <stack>#include <atcoder/all>#include <array>using namespace std;#define rep(i,n) for(int i = 0; i < (int)(n); ++i)#define rrep(i,n) for(int i = 1; i <= (n); ++i)#define drep(i,n) for(int i = (n)-1; i >= 0; --i)#define srep(i,s,t) for (int i = s; i < (t); ++i)#define dsrep(i,t,s) for(int i = (t)-1; i >= (s); --i)#define rng(a) a.begin(),a.end()#define rrng(a) a.rbegin(),a.rend()#define isin(x,l,r) ((l) <= (x) && (x) < (r))int dx4[4]={1,0,-1,0};int dy4[4]={0,-1,0,1};using ll = long long;using uint = unsigned;using ull = unsigned long long;using P = pair<int,int>;const ll LINF = 1001002003004005006ll;const int INF = 1001001001;// const ll mod = 998244353;const ll mod = 1e9 + 7;///////////////////////////////////////////int n, q;vector<int> g[100005];int cnt[100005];int dfs(int x) {cnt[x] = 1;int sum = 0;for(auto y : g[x]) {if(cnt[y] < 0) sum += dfs(y);}return cnt[x] += sum;}int main() {cin.tie(0);ios::sync_with_stdio(false);cin >> n >> q;rep(i, n - 1) {int a, b;cin >> a >> b;a--; b--;g[a].push_back(b);g[b].push_back(a);}rep(i, n) cnt[i] = -1;dfs(0);ll sum = 0;while(q--) {int p, x;cin >> p >> x;p--;sum += (ll)cnt[p] * x;cout << sum << endl;}}