求助!dalao帮忙看看
查看原帖
求助!dalao帮忙看看
432126
s_cenxinyang楼主2021/8/20 14:45

只有16分,其余全WA

附代码

#include<bits/stdc++.h>
using namespace std;
int n,m,h[101],cnt,dp[101][101],son[101],x,y,z;
struct node
{
	int to,nxt,s;
}e[101];
void add(int x,int y,int z)
{
	e[++cnt].to=y;
	e[cnt].s=z;
	e[cnt].nxt=h[x];
	h[x]=cnt;
}
void dfs(int x,int fa)
{
	for(int i=h[x];i!=-1;i=e[i].nxt)
	{
	  int v=e[i].to;
	  if(v==fa)
		 continue;
	  dfs(v,x);
	  son[x]=son[v]+1;
	  for(int j=son[x];j>=1;--j)
	    for(int k=j-1;k>=0;--k)
	      dp[x][j]=max(dp[x][j],dp[v][k]+dp[x][j-k-1]+e[i].s);
	}
}
int main()
{
    cin>>n>>m;
    memset(h,-1,sizeof(h));
    for(int i=1;i<n;++i)
    {
      cin>>x>>y>>z;
      add(x,y,z);
      add(y,x,z);
     }
    dfs(1,0);
    cout<<dp[1][m];
    return 0;
}
2021/8/20 14:45
加载中...