dfs
qcccc_
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #731 (Div. 3) G
G - How Many Paths? 本题的题面意思大概是: 如果一个点不可以从1开始到达那么输出0 如果一个点可以从1到达且路径有且仅有一条输出1 如果可以从1到达且有多条路径则输出2 如果有无数条路径到达则输出-1 本题需要注意的是存在自环 大概思路肯定是优先找-1,因为-1其实很好找,就是找环,找环(强连通块)的方法 有几种:拓扑排序,tarjan,拓扑排序应该也是可以做的吧,我看很多人都是用 tarjan做的。找到环中的这些点后,由这些点扩张出来的点一定也是-1。然后就可 以开始找1,2了,从原创 2021-07-15 11:24:02 · 60 阅读 · 0 评论 -
牛客小白月赛29 D 种树
D 种树 很久没来水博客了,来水一下博客 这个题目一开始还不知道怎么写但是仔细想了一下我们用max次数越多,那么最后的结果就越大,而最后的结果显然和最多能取多少次最大值,还有想要取的那个数的深度有关,如果最大值的深度小于可以取最大值的次数,那么就能取到,如果最大值的深度小于可以取最大值的次数,那么最后的结果就是最多能取最大值值的深度的最大值和以及这之外的最小值的最大值取max;(其实就是找到一个想要的值当深度小于可以取max的的时候一直取max,其他取min,找到所有情况然后取所有情况的max) #i原创 2020-11-17 10:17:43 · 127 阅读 · 0 评论 -
E 地、颜色、魔法
题目戳我 本题开字符串数组肯定开不出二维的,所以考虑开一个vector数组存,1表示.,0表示#,然后就是dfs了,因为是其他点到边界,然后如果我们枚举其他点到边界的话绝对要超时,所以要转变思想。从边界枚举出去,然后如果这个点可达那么他的ve[x][y]++;这样时间复杂度就降下来了,但是还是不够的,那么现在就要减枝叶了,如果ve[x][y]>1的话说明已经有边界可达了,那么就直接return ,如果该点是#也就是说ve[x][y]==0,那么也continue; 在这里插入代码片#include原创 2020-08-11 21:53:30 · 95 阅读 · 0 评论