Submission #3962415
Source Code Expand
#include <bits/stdc++.h> using namespace std; using ll = long long; #define FOR(i,a,b) for(int i = (a); i < (b); i++) #define REP(i,n) FOR(i,0,n) #define ALL(obj) (obj).begin(), (obj).end() const ll MOD = 1e9+7; vector<int> dpf,dpg; vector<vector<int>> graph; int n; ll calcf(int num); ll calcg(int num); void cioacc(){//accelerate cin/cout cin.tie(0); ios::sync_with_stdio(false); } void input(){ cin >> n; graph = vector<vector<int>>(n+1); int tmp1,tmp2; REP(i,n-1){ cin >> tmp1 >> tmp2; graph[tmp1].push_back(tmp2); graph[tmp2].push_back(tmp1); } dpf.assign(n+1,-1); dpg.assign(n+1,-1); } void makegraph(int a,int b){ //親から子への有向グラフにする。a:child,b:parent if(a!=1){ auto c = find(ALL(graph[a]),b); graph[a].erase(c);//aのリストからbを削除する。 } REP(i,(int)graph[a].size()) makegraph(graph[a][i],a); } ll calcf(int num){ if(dpf[num]!=-1) return dpf[num]; dpf[num] = calcg(num); ll tmp = 1; REP(i,(int)graph[num].size()){ tmp = tmp * calcg(graph[num][i]) % MOD; } dpf[num] = (dpf[num] + tmp) % MOD; return dpf[num]; } ll calcg(int num){ if(dpg[num]!=-1) return dpg[num]; dpg[num] = 1; REP(i,(int)graph[num].size()){ dpg[num] = dpg[num] * calcf(graph[num][i]) % MOD; } return dpg[num]; } int main(){ cioacc(); input(); makegraph(1,0); cout << calcf(1) << endl; }
Submission Info
Submission Time | |
---|---|
Task | D - 塗り絵 |
User | vjudge4 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1388 Byte |
Status | AC |
Exec Time | 46 ms |
Memory | 6656 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
000.txt | AC | 1 ms | 256 KB |
001.txt | AC | 1 ms | 256 KB |
002.txt | AC | 35 ms | 5248 KB |
003.txt | AC | 45 ms | 6656 KB |
004.txt | AC | 30 ms | 4480 KB |
005.txt | AC | 46 ms | 6656 KB |
006.txt | AC | 42 ms | 6144 KB |
007.txt | AC | 42 ms | 6656 KB |
008.txt | AC | 32 ms | 4736 KB |
009.txt | AC | 45 ms | 6656 KB |
010.txt | AC | 32 ms | 4864 KB |
011.txt | AC | 46 ms | 6528 KB |
012.txt | AC | 26 ms | 4096 KB |
013.txt | AC | 46 ms | 6656 KB |
014.txt | AC | 21 ms | 3200 KB |
015.txt | AC | 42 ms | 6656 KB |
016.txt | AC | 27 ms | 4224 KB |
017.txt | AC | 45 ms | 6528 KB |
018.txt | AC | 9 ms | 1408 KB |
019.txt | AC | 46 ms | 6656 KB |
020.txt | AC | 6 ms | 896 KB |
021.txt | AC | 45 ms | 6656 KB |