定义 对于一颗n个节点的无根树,找到一个点,使得把树变成以该节点为根的有根树时,最大节点数最少。换句话说,删除这个节点后最大连通块(一定是树)的节点数最少。 分析 该问题跟树的最大独立集问题类似。先任选一个节点作为根,把无根树变成有根树,然后设d[i]表示以i为跟的子树的节点个数。只需要一次DFS。 ...
分类:
其他好文 时间:
2020-06-20 17:06:53
阅读次数:
65
##题面 Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是,对于给定的N,求出有多少种合法的放置方法。 Input 共有若干行,每行一个正整数N≤10,表示棋盘和 ...
分类:
其他好文 时间:
2020-06-19 23:18:56
阅读次数:
45
回溯法 思路: dfs,深度优先搜索。 代码: class Solution: def restoreIpAddresses(self, s: str) -> List[str]: def valid(segment): return int(segment) <= 255 if segment[0 ...
分类:
其他好文 时间:
2020-06-19 19:17:15
阅读次数:
63
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回: [ [5,4,11,2], ...
分类:
其他好文 时间:
2020-06-19 16:30:16
阅读次数:
54
我只放代码你们凑活看吧。。 参考了大佬 @墨染空 的题解 暴力代码 #include<bits/stdc++.h> typedef pair<int,int> pii; using namespace std; int n,m,bnum=0; pii bian[666]; int to[33],nx ...
两次$DFS$ \(O(n)\) 第一次随机从一个点出发,寻找距离当前点,最远的一个叶子节点,命名为$rt$ 然后从 \(rt\) 出发,寻找距离$rt$ 最远的一个叶子节点,这段距离就是树的直径 #include <bits/stdc++.h> using namespace std; const ...
分类:
其他好文 时间:
2020-06-18 23:22:42
阅读次数:
95
https://codeforces.ml/contest/1367/problem/D 在比赛的时候我想的是直接dfs爆搜,T了...其实这题是一个构造题,对于b数组中的每一个数b[i] ,只有t串中比t[i] 大的位置才会对b[i] 有贡献,我们首先知道了对于j位置有b[j] = 0 时,那么t ...
分类:
其他好文 时间:
2020-06-18 01:30:01
阅读次数:
57
概述篇 LCA (Least Common Ancestors) ,即最近公共祖先,是指这样的一个问题:在一棵有根树中,找出某两个节点 u 和 v 最近的公共祖先。 LCA 可分为在线算法与离线算法 **在线算法:**指程序可以以序列化的方式一个一个处理输入,也就是说在一开始并不需要知道所有的输入。 ...
分类:
其他好文 时间:
2020-06-16 23:42:20
阅读次数:
236
「解题报告」[luoguP6584]重拳出击 (贪心).md 传送门 题面 题意 有一颗大小为 \(n\) 的边权为 $1$ 的无根树, 树上有 \(m\) 个 Youyou. 初始时, 小 Z 在 \(x\) 号节点上. 每一回合, 小 Z 可以杀死所有与它距离小于等于 \(k\) 的 Youyo ...
分类:
其他好文 时间:
2020-06-16 23:15:38
阅读次数:
79
Description 给定迷宫起点和终点,寻找一条从起点到终点的路径。 (0,1) (2,0) 起点 (1,1) (1,2) (1,3) (1,4) (2,0) (2,1) (2,4) (3,0) (3,1) (3,2) 终点 (3,4) (4,1) 上图中黄色代表墙,白色代表通路,起点为(1,1 ...
分类:
编程语言 时间:
2020-06-16 18:33:16
阅读次数:
251