
DFS
陆小萌
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU6797
Solution dfs枚举删除最短路上的某条边后继续删边,记录最大值 Code #include <bits/stdc++.h> #define fi first #define se second #define mp make_pair using namespace std; typedef long long ll; typedef pair<int,int> pii; const double eps = 1e-8; const int NINF = 0xc0c0c0c原创 2020-09-12 00:30:34 · 186 阅读 · 0 评论 -
CF180 D. Name
CF180 D. Name Question 给定两个字符串sss和ttt,若重新排列sss之后能使得s>ts>ts>t,则输出字典序尽可能小且满足条件的sss,否则输出−1-1−1。 Solution 贪心+分类讨论+DFS 这里思路应该是十分清晰的,主要我在想如何实现会比较方便,看了一下当时比赛第一个交的人,交的是一份DFS,一个一个字符往下去遍历,挺适合这里的,而且也好写。...原创 2020-05-04 11:48:25 · 310 阅读 · 0 评论 -
CF1338 B. Edge Weight Assignment
CF1338 B. Edge Weight Assignment 题意 一棵n个结点的树,求最小和最大需要多少个不同的路径来构造树的路径权值,使得任意两片叶子的路径异或和为0。 思路 首先这是一棵无根树,以其任意一个叶子结点为根。(避免讨论) 首先考虑最小,最小要么为1要么为3。 为1的情况是任意结点到根节点的距离为偶数。 为3的情况是只要有一个结点到根结点的距离为奇数。 这里仅判断奇偶有两种写法...原创 2020-04-14 16:57:59 · 483 阅读 · 1 评论 -
NC14248
NC14248 题意 给定一棵n个点的树,问其中有多少条长度为偶数的路径。路径的长度为经过的边的条数。x到y与y到x被视为同一条路径。路径的起点与终点不能相同 思路 DFS 树 数据结构 这道题和CF1339D十分相像,有兴趣的可以做一下。 把题意转化为给你一颗n个结点的树,树上所有的边权值为1,求树上任意两点距离为偶数的点的个数。 问题就转化为了如何获取树上任意两点的距离是否为偶数呢? 图论相关...原创 2020-04-14 15:26:21 · 249 阅读 · 0 评论 -
NC13249
NC13249 题意 给你一棵树,每个节点iii上有一个值k[i]k[i]k[i],一开始树上所有节点均为白色,要求你每次选择一个白色节点染色,从该节点往根的链上小于k[i]k[i]k[i]的均被染色,求最小染色次数为多少? 思路 DFS 贪心 首先叶子结点是一定要染色的,我们考虑如何返回的时候构造最优方案,我们维护两个数组。 回溯路径所能染色到的最远距离k[x]=max(k[x],k[s]−1)...原创 2020-04-09 22:08:42 · 196 阅读 · 0 评论 -
学军信友队趣味网络邀请赛 B.齐心抗疫
学军信友队趣味网络邀请赛 B.齐心抗疫 题意 给你一棵每条边均为1的树,求任意两点距离乘两端点中大的那个数的乘积最大为多少? 思路 题意转化为公式就是求dis[x][y]∗max(a[x],a[y])dis[x][y]*max(a[x],a[y])dis[x][y]∗max(a[x],a[y]) 那么难点就在于求任意两点间的距离了。 这时候要抓住条件:这是一棵树! 利用树的直径的性质DFS三次即...原创 2020-04-06 01:21:01 · 555 阅读 · 0 评论 -
NC13886
NC13886 题意 给你一颗n(偶数)结点的树,将其分为n/2对,求所有对数相连的路径之和最小为多少? 思路 DFS 数据结构 既然是图论那就先画图吧 左图由于以2号结点为根节点的子树结点数(包括其自身)为3(奇数),那么显然这棵树上一定有个节点要从树外找一个节点相连,那么必须要经过2号结点与其父节点的这条路(2->1)。 右图告诉我们如果能偶数配对的子树则不需要相连。 叶子节点为子树的结...原创 2020-04-02 20:01:46 · 231 阅读 · 0 评论 -
Panasonic Programming Contest 2020
Panasonic Programming Contest 2020 D - String Equivalence 题意 本来是求字母的序列转化为求数字的序列,最后可以再转化为字母。 转化为求一个序列,如果这个位置是 p[i],那么 1~i-1 内一定出现过所有 1~p[i]-1 的数字,且第i个位置能取的最大数字为之前所用到的最大数字+1。 思路 序列要想到DFS 字母序列可以转化为数字序...原创 2020-03-15 16:24:10 · 214 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6 B-图
2020牛客寒假算法基础集训营6 B-图 思路: 记忆化搜索dfs 分析可知图为出度为1的基环内向树森林,从一个点出发,沿着出边一路走下去,一定会走到一个环。 所以我们选择dfs,当遍历到一个已在dfs栈中的节点时,就说明找到了环,可以结束统计。 但这样是会超时的,于是我们选择带“记忆化”的dfs,从一个点开始沿着出边走下去,每当走到一个在之前某次dfs中经过的点时,就可以利用上一次的答案完成求解...原创 2020-03-03 18:20:55 · 1641 阅读 · 0 评论 -
POJ3009
题意: 冰壶,直线走,出格子算输,打到障碍物才停下来,到终点也会停下来,<=10步到终点则算胜利,记录最小步数,失败输出-1. 思路: dfs 于之前一步一步走的dfs不同的地方是,需要判断是否能走该方向,然后套一个while循环来一直走下去直到碰到1停下来或者碰到3记录答案。 反思: 我一开始做成了bfs,想嘛步数最小。 #include <iostream> #include...原创 2020-02-27 22:14:23 · 183 阅读 · 0 评论