Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define mp make_pair#define all(x) (x).begin(),(x).end()#define SZ(x) ((int)(x).size())#define fi first#define se secondtypedef vector<int> VI;typedef long long ll;typedef pair<int,int> PII;const ll mod=1000000007;ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}// headdouble dp[110][110],prob[110],ans;int sz[110],n,u,v;VI e[110];void dfs(int u,int f,int r) {dp[u][0]=1; sz[u]=1;rep(i,0,SZ(e[u])) {int v=e[u][i];if (v==f) continue;dfs(v,u,r);rep(j,0,sz[u]+sz[v]+1) prob[j]=0;rep(j,0,sz[u]+1) if (j<=r) {rep(k,1,sz[v]+1) if (j+k<=r) {prob[max(j,k)]+=dp[u][j]*dp[v][k-1]*0.5;}