玄学问题
查看原帖
玄学问题
1164775
Jadonyzx楼主2024/4/17 20:15

第23行注释掉就有数字输出,不注释掉就什么都不输出,求助大佬为什么

#include<bits/stdc++.h>
#define maxn 210
using namespace std;
int n,q,cnt;
struct EDGE{
	int to,next,val;
}edge[440];
int head[maxn],dp[maxn][maxn],outdgr[maxn];
bool vis[maxn];
void addedge(int from,int to,int val){outdgr[from]++;edge[++cnt].next=head[from];edge[cnt].to=to;edge[cnt].val=val;head[from]=cnt;return;}
void Rrhalil(int rt){
	if(vis[rt])return;
	vis[rt]=1;
	int lson,rson,lval,rval;
	int phigros=0,ccf=head[rt];
	while(ccf){
		if(!vis[edge[ccf].to]){
			phigros++;
			if(phigros==1){lson=edge[ccf].to;lval=edge[ccf].val;}
			else{rson=edge[ccf].to;rval=edge[ccf].val;break;}
		}
		ccf=edge[ccf].next;
		//cout<<"suibian1234\n";
	}
	Rrhalil(lson);
	Rrhalil(rson);
	for(int i=1;i<=q;++i)dp[rt][i]=max(dp[rt][i],dp[lson][i-1]+lval);
	for(int i=1;i<=q;++i)dp[rt][i]=max(dp[rt][i],dp[rson][i-1]+rval);
	for(int i=2;i<=q;++i){
		for(int k=0;k<=i;++k){
			int j=i-2-k;
			dp[rt][i]=max(dp[lson][k]+dp[rson][j]+lval+rval,dp[rt][i]);
		}
	}
	return;
}
signed main(){
	cin>>n>>q;
	for(int i=1;i<n;++i){
		int jarvis,insigne,bob;
		cin>>jarvis>>insigne>>bob;
		addedge(jarvis,insigne,bob);
		addedge(insigne,jarvis,bob);
	}
	Rrhalil(1);
	cout<<dp[1][q];
	return 0;
}
2024/4/17 20:15
加载中...