Submission #1114156

#TimeUsernameProblemLanguageResultExecution timeMemory
11141560pt1mus23Biochips (IZhO12_biochips)C++14
100 / 100
606 ms405064 KiB
// el psy congroo #include <bits/stdc++.h> using namespace std; #define int int #define ins insert #define pii pair<int,int> #define pb push_back #define endl '\n' #define putr(x) cout<<x<<endl;return; #define all(x) x.begin(),x.end() const int mod = 1e9 +7, sze = 2e5 +1, inf = 0, LG = 20; vector<int> graph[sze]; int val[sze]; int k; int dp[sze][501]; int mx[sze]; void dfs(int node,int par=-1){ int a= 0,b; for(auto v:graph[node]){ if(v!=par){ dfs(v,node); b = mx[v]; a=min(a,k); b=min(b,k); for(int i = a;i>=0;i--){ if( (!i) || dp[node][i]){ for(int j= 0;j<=b && ( (i+j)<=k);j++){ if(!(j) || dp[v][j]){ dp[node][i+j]=max(dp[node][i+j],dp[node][i] + dp[v][j]); } } } } a+=b; mx[node]=max(mx[node],a); } } dp[node][1]=max(dp[node][1],val[node]); mx[node]=max(mx[node],(int)1); } void fast(){ int n,p,w; cin>>n>>k; int root =0; for(int i=1;i<=n;i++){ p,w; cin>>p>>w; root|=(!p) * i; if(p!=0){ graph[p].pb(i); graph[i].pb(p); } val[i]=w; } dfs(root); cout<<dp[root][k]<<endl; } signed main(){ // ios::sync_with_stdio(0); // cin.tie(0); // cout.tie(0); int tt = 1; // cin>>tt; while(tt--){ fast(); } return 0; }

Compilation message (stderr)

biochips.cpp: In function 'void fast()':
biochips.cpp:48:9: warning: left operand of comma operator has no effect [-Wunused-value]
   48 |         p,w;
      |         ^
biochips.cpp:48:12: warning: right operand of comma operator has no effect [-Wunused-value]
   48 |         p,w;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...