社区讨论

爽吃后人

P2014[CTSC1997] 选课参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mjdn86z6
此快照首次捕获于
2025/12/20 09:52
3 个月前
此快照最后确认于
2025/12/21 18:55
3 个月前
查看原帖

AC CODE

using namespace std;
int n,m,dp[342][342];
struct Edge
{
	int next,to;
}e[342];
int head[342],ecnt=0;
inline void add(int u,int v)
{
	++ecnt;
	e[ecnt].next=head[u];
	e[ecnt].to=v;
	head[u]=ecnt;
}
int dfs(int now){
    for(int i=head[now];i;i=e[i].next){
        dfs(e[i].to);
    }for(int i=head[now];i;i=e[i].next){
        for(int j=m;j>0;j--){
            for(int k=0;k<j;k++){
                dp[now][j]=max(dp[now][j],dp[now][j-k]+dp[e[i].to][k]);
            }
        }
    }
}
int main(){
    cin>>n>>m;
    m++;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x>>dp[i][1];
        add(x,i);
    }
    dfs(0);
    cout<<dp[0][m];
}

Story

测样例时 TLE ,回去想了 91s91s ,又对着正解看了 78s78s ,结果在本地对拍时完全没问题,然后上洛谷把 O2O_2 关了一发 AC 。

Dead reason

氧气中毒!!!

回复

2 条回复,欢迎继续交流。

正在加载回复...