답안 #951998

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
951998 2024-03-23T03:33:56 Z vjudge1 Museum (CEOI17_museum) C++14
80 / 100
286 ms 784980 KB
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
int n,k,x,son[N];
int dp[N][N][2];
vector<pair<int,int> >g[N];
inline void dfs(int u,int fa){
	dp[u][0][0]=dp[u][0][1]=dp[u][1][0]=dp[u][1][1]=0;
	son[u]=1;
	for(auto v:g[u]){
		if(v.first==fa)continue;
		dfs(v.first,u);
		son[u]+=son[v.first];
		for(int i=min(k,son[u]);i>=2;i--){
			for(int j=min(i,son[v.first]);j>=0;j--){
				dp[u][i][0]=min(dp[u][i][0],dp[u][i-j][0]+dp[v.first][j][0]+v.second*2);
				dp[u][i][1]=min(dp[u][i][1],dp[u][i-j][0]+dp[v.first][j][1]+v.second);
				dp[u][i][1]=min(dp[u][i][1],dp[u][i-j][1]+dp[v.first][j][0]+v.second*2);
			}
		}
	}
}
int main(){
	//freopen("museum.in","r",stdin);
	//freopen("museum.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	memset(dp,0x7f,sizeof dp);
	cin>>n>>k>>x;
	for(int i=1,a,b,c;i<n;i++){
		cin>>a>>b>>c;
		g[a].push_back({b,c});
		g[b].push_back({a,c});
	}
	dfs(x,-1);
	cout<<min(dp[x][k][0],dp[x][k][1]);
} 
# 결과 실행 시간 메모리 Grader output
1 Correct 286 ms 784216 KB Output is correct
2 Correct 206 ms 784156 KB Output is correct
3 Correct 215 ms 784212 KB Output is correct
4 Correct 207 ms 784136 KB Output is correct
5 Correct 205 ms 784080 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 217 ms 784468 KB Output is correct
2 Correct 216 ms 784472 KB Output is correct
3 Correct 261 ms 784980 KB Output is correct
4 Correct 245 ms 784768 KB Output is correct
5 Correct 229 ms 784464 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 217 ms 784468 KB Output is correct
2 Correct 216 ms 784472 KB Output is correct
3 Correct 261 ms 784980 KB Output is correct
4 Correct 245 ms 784768 KB Output is correct
5 Correct 229 ms 784464 KB Output is correct
6 Correct 218 ms 784880 KB Output is correct
7 Correct 256 ms 784724 KB Output is correct
8 Correct 219 ms 784468 KB Output is correct
9 Correct 228 ms 784512 KB Output is correct
10 Correct 219 ms 784556 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 286 ms 784216 KB Output is correct
2 Correct 206 ms 784156 KB Output is correct
3 Correct 215 ms 784212 KB Output is correct
4 Correct 207 ms 784136 KB Output is correct
5 Correct 205 ms 784080 KB Output is correct
6 Correct 217 ms 784468 KB Output is correct
7 Correct 216 ms 784472 KB Output is correct
8 Correct 261 ms 784980 KB Output is correct
9 Correct 245 ms 784768 KB Output is correct
10 Correct 229 ms 784464 KB Output is correct
11 Correct 218 ms 784880 KB Output is correct
12 Correct 256 ms 784724 KB Output is correct
13 Correct 219 ms 784468 KB Output is correct
14 Correct 228 ms 784512 KB Output is correct
15 Correct 219 ms 784556 KB Output is correct
16 Incorrect 279 ms 784468 KB Output isn't correct
17 Halted 0 ms 0 KB -