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/...