제출 #925388

#제출 시각아이디문제언어결과실행 시간메모리
925388ttamxCat in a tree (BOI17_catinatree)C++14
0 / 100
73 ms139900 KiB
#include<bits/stdc++.h> using namespace std; const int N=2e5+5; int n,d; vector<int> adj[N]; deque<int> dp[N]; int get(int i,int j){ return j<dp[i].size()?dp[i][j]:0; } void dfs(int u){ dp[u].emplace_back(1); for(auto v:adj[u]){ dfs(v); dp[v].emplace_front(0); if(dp[v].size()>dp[u].size())swap(dp[u],dp[v]); vector<int> res; for(int i=0;i<dp[v].size();i++){ if(i>d-i)break; int du=dp[u][i]+get(v,d-i); int dv=dp[v][i]+get(u,d-i); res.emplace_back(max(du,dv)); } for(int i=0;i<res.size();i++)dp[u][i]=res[i]; for(int i=res.size()-2;i>=0;i--)dp[u][i]=max(dp[u][i],dp[u][i+1]); dp[v].clear(); } if(dp[u].size()==d+1){ dp[u][0]=max(dp[u][0],dp[u][d]+1); dp[u].pop_back(); } } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> d; for(int i=1;i<n;i++){ int p; cin >> p; adj[p].emplace_back(i); } dfs(0); cout << dp[0][0]; }

컴파일 시 표준 에러 (stderr) 메시지

catinatree.cpp: In function 'int get(int, int)':
catinatree.cpp:12:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     return j<dp[i].size()?dp[i][j]:0;
      |            ~^~~~~~~~~~~~~
catinatree.cpp: In function 'void dfs(int)':
catinatree.cpp:22:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         for(int i=0;i<dp[v].size();i++){
      |                     ~^~~~~~~~~~~~~
catinatree.cpp:28:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |         for(int i=0;i<res.size();i++)dp[u][i]=res[i];
      |                     ~^~~~~~~~~~~
catinatree.cpp:32:20: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |     if(dp[u].size()==d+1){
      |        ~~~~~~~~~~~~^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...