Submission #1675123
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,n) FOR(i,0,n)
#define ALL(v) (v).begin(),(v).end()
#define fi first
#define se second
template<typename A, typename B> inline bool chmax(A &a, B b) { if (a<b) { a=b; return 1; } return 0; }
template<typename A, typename B> inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; }
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<int, pii> pip;
const ll INF = 1e9+100;
const ll MOD = 1e9;
const double EPS = 1e-10;
const bool debug = 0;
//------------------------------//
int N;
vector<int> g[212345];
double dp[212345], dp2[212345];
double dfs1(int u, int pre) {
double res = 0.0;
REP(i, g[u].size()) if (g[u][i] != pre)
res += dfs1(g[u][i], u) + 1;
if (g[u].size() > 1) res /= g[u].size() - 1;
return dp[u] = res;
}
void dfs2(int u, int pre, double par) {
double sum = 0.0;
REP(i, g[u].size()) {
if (g[u][i] == pre) sum += par + 1;
else sum += dp[g[u][i]] + 1;
}
if (g[u].size() > 0) dp2[u] = sum / g[u].size();
REP(i, g[u].size()) if (g[u][i] != pre) {
double d = sum - (dp[g[u][i]] + 1);
if (g[u].size() > 1) d /= g[u].size() - 1;
dfs2(g[u][i], u, d);
}
}
int main() {
cin >> N;
REP(i, N - 1) {
int u, v;
scanf("%d %d", &u, &v);
u--; v--;
g[u].push_back(v);
g[v].push_back(u);
}
dfs1(0, -1);
dfs2(0, -1, 0);
REP(i, N) printf("%.15f\n", dp2[i]);
return 0;
}
Submission Info
Submission Time
2017-10-10 22:48:03+0900
Task
D - Driving on a Tree
User
tkmst201
Language
C++14 (GCC 5.4.1)
Score
800
Code Size
1538 Byte
Status
AC
Exec Time
116 ms
Memory
21248 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:53:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &u, &v);
^
Judge Result
Set Name
Subtask1
Subtask2
Subtask3
Score / Max Score
190 / 190
220 / 220
390 / 390
Status
Set Name
Test Cases
Subtask1
sub1_in1.txt, sub1_in2.txt, sub1_in3.txt
Subtask2
sub2_in1.txt, sub2_in2.txt
Subtask3
sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub2_in1.txt, sub2_in2.txt, sub3_in1.txt, sub3_in2.txt, sub3_in3.txt
Case Name
Status
Exec Time
Memory
sub1_in1.txt
AC
3 ms
6528 KB
sub1_in2.txt
AC
4 ms
6656 KB
sub1_in3.txt
AC
115 ms
18688 KB
sub2_in1.txt
AC
3 ms
6528 KB
sub2_in2.txt
AC
3 ms
6528 KB
sub3_in1.txt
AC
116 ms
15488 KB
sub3_in2.txt
AC
87 ms
15988 KB
sub3_in3.txt
AC
108 ms
21248 KB