제출 #716963

#제출 시각아이디문제언어결과실행 시간메모리
716963Dan4LifeMuseum (CEOI17_museum)C++17
80 / 100
1368 ms1048576 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define sz(a) (int)a.size() #define all(a) a.begin(),a.end() const int mxN=(int)1e4+2; const int LINF = (int)1e9; int n, k, s, sub[mxN]; vector<pair<int,int>> adj[mxN]; int dp[mxN][mxN][2], dp2[mxN][mxN][2]; int findSize(int s, int p){ sub[s]=1; for(auto [u,w] : adj[s]) if(u!=p) sub[s]+=findSize(u,s); return sub[s]; } void dfs(int s, int p){ vector<pair<int,int>> v; v.clear(); for(auto [u,w] : adj[s]) if(u!=p) dfs(u,s), v.pb({u,w}); dp[s][1][0]=dp[s][1][1]=0; if(!sz(v)) return; for(int i = 0; i <= sz(v); i++) for(int j = 0; j <= k; j++) dp2[i][j][0]=dp2[i][j][1]=LINF; dp2[0][0][0] = dp2[0][0][1] = 0; int tot = 1; for(int i = 1; auto [u,w] : v){ tot+=sub[u]; for(int j = 0; j <= k; j++){ for(int x = 0; x < 2; x++){ dp2[i][j][x] = min(dp2[i][j][x],dp2[i-1][j][x]); for(int l = max(1,j-tot+sub[u]); l <= min(j,sub[u]); l++){ dp2[i][j][x] = min(dp2[i][j][x], dp2[i-1][j-l][x]+dp[u][l][1]+2*w); dp2[i][j][0] = min(dp2[i][j][0], dp2[i-1][j-l][1]+dp[u][l][0]+w); } } } i++; } for(int i = 2; i <= k; i++) for(int j = 0; j < 2; j++) dp[s][i][j] = min(dp[s][i][j],dp2[sz(v)][i-1][j]); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> k >> s; memset(dp,63,sizeof(dp)); for(int i = 1; i < n; i++){ int a, b, c; cin >> a >> b >> c; adj[a].pb({b,c}), adj[b].pb({a,c}); } findSize(s,-1); dfs(s,-1); cout << dp[s][k][0]; }

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

museum.cpp: In function 'void dfs(int, int)':
museum.cpp:31:17: warning: range-based 'for' loops with initializer only available with '-std=c++2a' or '-std=gnu++2a'
   31 |  for(int i = 1; auto [u,w] : v){
      |                 ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...