上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 83 下一页
摘要: 题意: n个点 有n-1条边 去除最多的边 使得每个连通块点的个数为偶数 解析: 点的个数为奇数的时候肯定不行,输出-1 当为偶数时,随便选一个点作为根dfs搜一下 如果一个点的子树中点的个数为偶数 则断开和父结点的边即可 统计一共有多少个即可 为什么要是子树中点的个数。。。不从根开始统计。。。画画 阅读全文
posted @ 2018-09-16 22:59 WTSRUVF 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题意: 问至少加几条边 能使点s可以到达所有的点 解析: 无向图的连通分量意义就是 在这个连通分量里 没两个点之间至少有一条可以相互到达的路径 所以 我们符合这种关系的点放在一起, 由s向这些点的任意一个连边即可 即为求除s所在的连通分量以外的 入度为0的连通分量 阅读全文
posted @ 2018-09-16 09:08 WTSRUVF 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 双向bfs 注意数很大 用map来存 然后各种难受。。。。 阅读全文
posted @ 2018-09-15 10:34 WTSRUVF 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题意: 就是求桥最多的一条路 解析: 先求连通分量的个数 然后缩点建图 求直径即可 阅读全文
posted @ 2018-09-14 21:04 WTSRUVF 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题意: 就是让构造一个直径为d的树 每个结点的度数不能超过k 解析: 先构造出一条直径为d的树枝 然后去遍历这条树枝上的每个点 为每个点在不超过度数和直径的条件下添加子嗣即可 阅读全文
posted @ 2018-09-13 22:34 WTSRUVF 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 最短路树就是用bfs走一遍就可以了 d[v] = d[u] + 1 表示v是u的前驱边 然后遍历每个结点 存下它的前驱边 再用dfs遍历每个结点 依次取每个结点的某个前驱边即可 阅读全文
posted @ 2018-09-12 22:13 WTSRUVF 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个字符串 给出几个定点必须是哪个字母(或者是几个字母中的一个) 然后求在满足所有定点后的最小字符串 解析: 没错 这题是暴力 用状压暴力 “a - f” 用”0 - 5“ 这几个数字代替 输入字符串 num[i]为字母i的个数,然后输入定点必须为哪个字母,ti[i]中用六位二进制来存储 阅读全文
posted @ 2018-09-12 20:09 WTSRUVF 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 题意: 就是有一颗树 然后每次询问 父结点 的 第k个结点是不是他的子嗣。。。是的话就输出这个子嗣。。不是 就输出-1 解析: 突然想到后缀数组的sa 和 x的用法。。就是我们可以用一个id标记当前结点的等级 用idx标记等级ans是哪一个结点。。然后用en标记结点u的子嗣的结束结点 然后每次判断一 阅读全文
posted @ 2018-09-12 08:08 WTSRUVF 阅读(222) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/RabbitHu/p/FFT.html 先去看这个。。。 我觉得代码还是https://blog.csdn.net/WADuan2/article/details/79529900 这个比较通俗易懂 挺好的 哈哈 根据 得 那个大佬不让转载 忘了的时候 阅读全文
posted @ 2018-09-11 22:14 WTSRUVF 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个棋盘 对于任何一个棋盘中的矩形 如果 任意三角存在棋子 则第四个角会自动生成一个棋子 求铺满整个棋盘 我们至少要向棋盘里加多少枚棋子 解析: 这题就是求图中有多少个连通图,可以直接dfs 也可以 并查集 为什么是求多少个连通图呢 并查集: dfs: 阅读全文
posted @ 2018-09-11 18:09 WTSRUVF 阅读(369) 评论(0) 推荐(0) 编辑
上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 83 下一页