DFS
nirvana · rebirth
NIRVANA & REBIRTH
展开
-
“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——A.点对最大值【换根DP】
题目传送门题解比较简单的换根DP,很容易想到。我们可以维护 dp[i]:dp[i]:dp[i]: 以i为根的子树中最长的链(不包括节点i的值)。对于任意结点 uuu ,我们需要子树中 最长的链mmx 和 次大的链mx那么我们可以每次处理完节点 uuu 的子树后,更新 ans=mmx+mx+dp[u]ans = mmx + mx + dp[u]ans=mmx+mx+dp[u],然后更新 dp[u]=mmxdp[u]=mmxdp[u]=mmx。由于避免 dp[i]dp[i]dp[i] 所表示原创 2020-06-02 00:55:25 · 354 阅读 · 0 评论 -
哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)—— B.小乐乐搭积木【DFS+回溯】【状压DP 轮廓线DP】
题目传送门题解解法一:DFS爆搜 + 回溯我们发现数据范围极小,可以暴力解决。把平面矩形竖起来,类比俄罗斯方块。那么我们只需从下至上,从左至右依次摆放即可。显然我们需要一个记录棋盘方格是否被标记的 bool vis[ ][ ]bool\ vis[\ ][\ ]bool vis[ ][ ]。既然方向是固定的,那么 DFSDFSDFS 参数只需要提供面积大小即可。若此时面积为 areaareaarea:当前层数 x=area&原创 2020-05-27 13:35:30 · 291 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6.B——图【基环树 & 记忆化dfs】
题目传送门题目描述现在有一个N个点的有向图,每个点仅有一条出边你需要求出图中最长的简单路径包含点的数量(1≤N≤1,000,000)输入描述:第一行一个数字N接下来N行,每行一个正整数,第i+1行的数字表示第i个点出边终点的编号(点从1开始标号)输出描述:一行一个数字,最长的简单路径的长度输入3232输出3题解首先这是一个基环树每个点出...原创 2020-02-18 10:43:44 · 1249 阅读 · 0 评论 -
2020牛客寒假算法基础集训营4.F——树上博弈【DFS】
题目传送门题目描述现有一个 n 个点,n-1条边组成的树,其中 1 号点为根节点。牛牛和牛妹在树上玩游戏,他们在游戏开始时分别在树上两个不同的节点上。在游戏的每一轮,牛牛先走一步,而后牛妹走一步。他们只能走到没有人的空节点上。如果谁移动不了,就输掉了游戏。现在牛牛和牛妹决定随机选择他们分别的起点,于是他们想知道,有多少种游戏开始的方式,使得牛牛存在一种一定获胜的最优策略。两种开始方式相...原创 2020-02-11 22:40:48 · 358 阅读 · 0 评论 -
CodeForces 149D——Coloring Brackets【区间DP & DFS & 记忆化搜索】(好题 、较难)
题目传送门DescriptionOnce Petya read a problem about a bracket sequence. He gave it much thought but didn’t find a solution. Today you will face it.You are given string s. It represents a correct brack...原创 2019-11-03 23:45:29 · 258 阅读 · 0 评论