社区讨论
为什么没有输出
P2014[CTSC1997] 选课参与者 3已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mhjcvr83
- 此快照首次捕获于
- 2025/11/04 00:30 4 个月前
- 此快照最后确认于
- 2025/11/04 00:30 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,dp[310][310];
struct node
{
int v,w;
};
vector<node> g[310];
void dfs(int x)
{
//if(g[x].size()==1&&x!=0) return;
for(int i=1;i<=g[x].size();i++)
{
//cout<<1;
dfs(g[x][i].v);
}
for(int i=1;i<=g[x].size();i++)
{
for(int j=m;j>0;j--)
{
for(int k=0;k<j;k++)
{
//cout<<1;
dp[x][j]=max(dp[x][j],dp[x][j-k]+dp[g[x][i].v][k]);
}
if(x==0) dp[x][j]=max(dp[x][j],dp[x][0]+dp[g[x][i].v][j]);
}
}
return;
}
int main()
{
cin>>n>>m;
m++;
for(int i=1;i<=n;i++)
{
int u,v;
cin>>u>>v;
node t1,t2;
t1.v=i;
t2.v=u;
t1.w=v;
t2.w=v;
g[u].push_back(t1);
//g[i].push_back(t2);
dp[i][1]=v;
//cout<<1;
}
dfs(0);
cout<<dp[0][m];
return 0;
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...