战略游戏WA90求调

#include <bits/stdc++.h>
using namespace std;
int f[205][205];
int n,m;
int a[205],b[205];
vector <int> v[205];
void dfs(int x){
	for(int i=0;i<v[x].size();i++){
		int u=v[x][i];
		dfs(u);
		for(int j=m;j>=2;j--){
			int jj=j+(x==0);
			for(int k=1;k<jj;k++){
				f[x][j]=max(f[x][j],f[x][j-k]+f[u][k]);
			}
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>b[i]>>a[i];
		v[b[i]].push_back(i);
		f[i][1]=a[i];
	}
	dfs(0);
	cout<<f[0][m];
	return 0;
}

0518-1

样例1WA了

你好,改一下dfs那个for循环的判断条件,我把j>=1改成了>=0就过了

哦写错了,是j>=2改成j>=1()

是j>=2改成j>=1(),直接通