给组hack也行啊
#include<bits/stdc++.h>
using namespace std;
int k,n,s[2502],p[2502],r[2502],sz[2502];
double mid,l,rt=10000,dp[2502][2502];
vector<int>g[2502];
int main(){
cin>>k>>n;
k++;
for(int i=1;i<=n;i++){
cin>>s[i]>>p[i]>>r[i];
g[r[i]].push_back(i);
}
while(rt-l>=1e-4){
mid=(l+rt)/2;
for(int i=1;i<=n;i++){
dp[i][1]=p[i]-s[i]*mid;
}
for(int i=n;i>=0;i--){
sz[i]=1;
for(auto&j:g[i]){
sz[i]+=sz[j];
for(int l=sz[i];l>=2;l--){
dp[i][l]=-1e9;
for(int o=1;o<=min(sz[j],l-1);o++){
dp[i][l]=max(dp[i][l],dp[i][l-o]+dp[j][o]);
}
}
}
}
if(dp[0][k]>=0){
l=mid;
}else{
rt=mid;
}
}
printf("%.3lf",rt);
}