题意:给一棵n(1≤n≤200000个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少。 算法见注释 cpp include define ll long long using namespace std; const int N=5e6+6; int n,tot; int lc ...
分类:
其他好文 时间:
2019-06-07 22:35:33
阅读次数:
109
DFS优先向搜索树深层搜索的搜索算法,对于一个合法的状态A,对于其所有的子状态(搜索树的儿子结点)选择一种进行探索递归这一过程,直至达到叶子结点或目前状态不合法则回溯至父亲结点,对另一种子状态进行搜索void DFS(状态A){ if(A不合法) return;//返回父亲结点或者不做任何操作 if ...
分类:
其他好文 时间:
2019-06-07 21:06:54
阅读次数:
86
题目描述 许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问 ...
分类:
其他好文 时间:
2019-06-07 19:23:09
阅读次数:
146
pro:有D个字母,每个字母有自己的权值,现状需要用它们拼出N个单词,使得这些单词互相不为另外一个的前缀。 且单词的权值和最小。D<=200; N<=200; sol:如果建立字典树,那个每个单词的权值权值救赎根到叶子的路径权重和。 感觉有点想哈夫曼树,但是没什么大的关系,因为不能倒推。 由于ND比 ...
分类:
其他好文 时间:
2019-06-07 13:10:11
阅读次数:
102
这个故事告诉我们,万物皆可暴(du)力(liu)dp。首先,题目的大意就是让我们通过他给定的一些变换方式使得这棵树变为完全二叉树。我们把完全二叉树所有的叶子节点连起来,应该只有两种情况,一种是一条链,另一种是两条链,其中一条链上的点的深度比另一条链的深度大1。令dp(i,j)表示i节点状态为j时的最 ...
CF772E Verifying Kingdom 有趣的交互题(交互题都挺有意思的) %ywy 增量法构造 考虑加入了前i个叶子 那么树是前i个叶子构成的虚树! 最后n个叶子构成的虚树就是答案! 怎样确定第i+1个叶子的位置? 用点分治“二分”! 每次找到当前连通块的重心rt,注意rt不能是叶子 维 ...
分类:
其他好文 时间:
2019-06-05 21:52:09
阅读次数:
130
(Isolation Forest无监督)这个算法是随机森林的推广。 iTree树构造:随机选一个属性,再随机选该特征的一个值,对样本进行二叉划分,重复以上操作。 iTree构建好了后,就可以对数据进行预测啦,预测的过程就是把测试记录在iTree上走一下,看测试记录落在哪个叶子节点。iTree能有效 ...
分类:
Web程序 时间:
2019-06-04 17:50:57
阅读次数:
159
AT3912 Antennas on Tree %%zzt 只能考虑性质了。 把最后选择的k个点的连通块求出来,连通块内部的点表示都是互异的 连通块外部的点只能形成若干条链,并且这k个点的每一个最多与一个外部点相连。 直接从每个叶子往上跳,当fa[x]度数>2的时停下 如果fa[x]之前没有链,那么 ...
分类:
其他好文 时间:
2019-06-04 09:28:30
阅读次数:
96
哈夫曼编码译码系统的实现,主要包含三部分: 1、创建哈夫曼树 2、编码函数 3、译码函数 编写代码时为了方便,在这里混用了c++的输入输出流。主体用c语言实现。 下面时代码部分: 1、头文件,以及储存结构: 2、哈夫曼树的创建,Ht储存全部节点的权值,n代表叶子节点数量。 3、编码译码函数、主函数: ...
分类:
编程语言 时间:
2019-06-03 21:57:24
阅读次数:
152
一个点的改变如果对根节点的值不会造成任何影响,那么这个点的所有子节点的改变也不会对根节点造成影响 因为每次只改一个叶子节点,也就是一条到根的路径,可以先预处理出初始情况下的每个结点的值 分别讨论根节点是and,or,xor,not时,1|2 个结点取值 的 各种情况(也就那么几种) 比如x是and, ...
分类:
其他好文 时间:
2019-05-31 16:50:27
阅读次数:
102