Submission #2554827


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<(int)(n);i++)
typedef vector<int> vi;
typedef pair<int,int> pii;
typedef long long ll;

#define MOD 1000000007

int dp[252][252][252];  // dp[i][j][k] := len(i,j)->len(k)

int n;
vi children[252];
int par[252];

vi dfs(int p){
  vi ret(1, 1);
  for(int c : children[p]){
    vi V = dfs(c);
    vi nret(ret.size()+1 + V.size()+1,0);
    REP(i,min(202,ret.size()))REP(j,min(202,V.size()))REP(k,min(202,i+j+1)){
      (nret[k] += (ll)ret[i]*V[j]%MOD*dp[i][j][k]%MOD) %= MOD;
    }
    ret = nret;
  }
  vi nret(ret.size()+1,0);
  REP(i,ret.size())nret[i+1] = ret[i];
  return nret;
}

int main(){
  scanf("%d",&n);
  REP(i,n)par[i] = -1;
  REP(i,n-1){
    int a,b;
    scanf("%d%d",&a,&b);
    children[a].push_back(b);
    par[b] = a;
  }
  int root = 0;
  REP(i,n)if(par[i]==-1)root=i;
  // dp
  dp[0][0][0] = 1;
  REP(i,202)REP(j,202)REP(k,202){
    (dp[i+1][j][k+1] += dp[i][j][k]) %= MOD;
    (dp[i][j+1][k+1] += dp[i][j][k]) %= MOD;
    (dp[i+1][j+1][k+1] += dp[i][j][k]) %= MOD;
  }
  vi anses = dfs(root);
  int ans = 0;
  for(int x : anses){
    ans = (ans+x)%MOD;
  }
  printf("%d\n",ans);
  return 0;
}

Submission Info

Submission Time
Task E - 順位付け
User rickytheta
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1246 Byte
Status CE

Compile Error

./Main.cpp: In function ‘vi dfs(int)’:
./Main.cpp:21:29: error: no matching function for call to ‘min(int, std::vector<int>::size_type)’
     REP(i,min(202,ret.size()))REP(j,min(202,V.size()))REP(k,min(202,i+j+1)){
                             ^
./Main.cpp:3:38: note: in definition of macro ‘REP’
 #define REP(i,n) for(int i=0;i<(int)(n);i++)
                                      ^
In file included from /usr/include/c++/5/bits/char_traits.h:39:0,
                 from /usr/include/c++/5/ios:40,
                 from /usr/include/c++/5/istream:38,
                 from /usr/include/c++/5/sstream:38,
                 from /usr/include/c++/5/complex:45,
                 from /usr/include/c++/5/ccomplex:38,
                 from /usr/include/x86_64-linux-gnu/c++/5/bits/stdc++.h:52,
                 from ./Main.cpp:1:
/usr/include/c++/5/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)
     min(const _Tp& __a, const _Tp& __b)
     ^
/usr/include/...