Description link 给定一棵二叉树,每个叶子上面有权值,你可以任意交换某个点的两颗子树 使得最后形成的树的中序遍历出来的子树的逆序对最少 \(n \le 2\times10^5\) Solution 如果你真的想做这个题,请耐心手玩样例并看懂这个题神仙一样的输入方式…… 考虑逆序对怎么 ...
分类:
其他好文 时间:
2020-07-13 09:17:09
阅读次数:
52
BFS和DFS DFS遍历使用递归(隐式使用栈): void dfs(TreeNode root) { if (root == null) { return; } dfs(root.left); dfs(root.right); } BFS遍历使用队列 void bfs(TreeNode root) ...
分类:
其他好文 时间:
2020-07-12 22:04:02
阅读次数:
66
挂一个模板。不懂,不过手玩起来似乎没有问题。 //有向图求欧拉回路,输出路径上的边的编号。复杂度不高于O(n^2) void dfs(int cur) { for (register unsigned int i = 0; i < vec[cur].size(); ++i) { int to = v ...
分类:
其他好文 时间:
2020-07-12 18:35:41
阅读次数:
50
最近跟zyy连麦谈理想耽误了些时间(每天最多也就六七个小时吧), 所以最近一直在水更呜呜呜 ,我去学习呜呜呜 迷宫基本思路一般都是dfs(深搜) 这样相当于二维数组了 用vis[n][n]数组记录走过的情况 啊啊啊啊今天学习状态有点不太好,身体有些不舒服emmmmm 1551今天早早歇了,希望明天状 ...
分类:
其他好文 时间:
2020-07-11 23:03:04
阅读次数:
56
最常用,也是最简单的算法,实质就是直接对暴力使用倍增优化将复杂度降低达到需求。有树上的倍增和区间的倍增 ...
分类:
其他好文 时间:
2020-07-11 19:06:59
阅读次数:
50
题目 P1457 [USACO2.1]城堡 The Castle 思路 三遍DFS求解 代码 #include<bits/stdc++.h> using namespace std; int n,m; const int maxn=50+5; int a[maxn][maxn][maxn][maxn ...
分类:
其他好文 时间:
2020-07-10 18:45:26
阅读次数:
94
题目: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例: 输 ...
分类:
其他好文 时间:
2020-07-10 00:46:16
阅读次数:
93
只需要用二进制来表示50个数,这样不会超过ll范围 之后按照dfs建树后建线段树维护 #include<iostream> #include<algorithm> #include<stack> #include<vector> #include<cstring> using namespace s ...
分类:
其他好文 时间:
2020-07-10 00:39:02
阅读次数:
94
题目链接:http://poj.org/problem?id=3321 题目大意:给定一棵树,某些节点上有苹果,多次询问各子树上的节点数,并且在询问的中途随时可能新增和删除苹果。 Sample Input 3 1 2 1 3 3 Q 1 C 2 Q 1 Sample Output 3 2 emmm, ...
分类:
移动开发 时间:
2020-07-09 19:37:43
阅读次数:
84
dfs找到解,return true, 不需要继续找了,不然回溯将恢复整个棋盘。 或者, 记录下该解,继续找下一个解(如果存在多解, 但一般不需要)。 import java.util.*; public class Main { static int[][] grid; static boolea ...
分类:
其他好文 时间:
2020-07-09 12:27:26
阅读次数:
52