제출 #1315714

#제출 시각아이디문제언어결과실행 시간메모리
1315714Jawad_Akbar_JJ바이오칩 (IZhO12_biochips)C++20
0 / 100
307 ms523120 KiB
#include <iostream> #include <vector> using namespace std; const int N = 1<<18; vector<int> nei[N]; int dp[N][505], ch[N], cur, a[N], mem[N]; void dfs(int u){ ch[u] = 1; for (int i : nei[u]) dfs(i), ch[u] += ch[i]; a[++cur] = 1; } int main(){ int n, m; cin>>n>>m; for (int i=1, p;i<=n;i++){ cin>>p>>mem[i]; nei[p].push_back(i); } dfs(nei[0][0]); for (int i=0;i<N;i++){ for (int j=1;j<=m;j++) dp[i][j] = -1e9; } for (int i=1;i<=n;i++){ for (int j=1;j<=m;j++) dp[i][j] = max(dp[i-1][j], dp[i - ch[a[i]]][j-1] + mem[a[i]]); } cout<<dp[n][m]<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...