8.26总结

分数

T1 T2 T3 T4 T5 T6 总分
100pts 100pts 12pts 100pts 60pts 14pts 386

T3

考试时没想好,随手打了一个树形DP,喜提12分。

正解:

定义状态dp[i][j]表示以i为根的子树,保留j个节点拆掉的最小边数

答案:

int ans=dp[1][p]
for(int i=2;i<=n;i++){
  ans=max(ans,dp[i][p]+1)//因为只有1节点不用切断与父亲的道路,其他点都要切断一条与他的父节点的道路
}

初始化: dp[i][1]=vt[i].size() 一开始的点都是不连儿子只连父亲

转移方程:dp[x][j]=min(dp[x][j],dp[x][j-k]+dp[v][k]-1),就是一个基本的背包类树形DP

T5

拓扑的DP方程写错位置,喜提60分

其实就是一个拓扑+递推

dp[i]表示第i个点挤奶的最早时间

每次删边的时候更新dp

dp[v]=max(dp[v],dp[x]+w)

因为v是从x过了w的时间后才能挤奶

初始状态:

dp[i]=s[i]

不能早于s[i]的时间

T6

考时没写出来,但正解应该是BFS+Dij

先用多起点BFS求出每个点是安全还是不安全的,以安全和不安全花费的钱的数量建边,跑Dij即可。

posted @   KK_SpongeBob  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
历史上的今天:
2023-08-27 CF1424G题解
点击右上角即可分享
微信分享提示