• 2024-07-022024.7
    1.Um_nikmod998244353ContestF.IsThisFFT?不妨令最后形成的链是\(1-2-3-\dots-n\),然后令\(p_i\)是\(i-{i+1}\)被删的时间。如果枚举了\(p\)形成的大根笛卡尔树,怎么算答案呢,你发现我们的限制形如,父亲要后于儿子加入;设左子树大小为\(x\)右子树为\(y\),则有\(
  • 2024-06-12数据结构复习笔记5.6:哈夫曼编码树
    1.前导概念1.定义:设有n个权值{w1,w2,…,wn},构造一棵有n个叶子结点的二叉树,每个叶子的权值为wi,则wpl最小的二叉树叫哈夫曼树。例子:2.结点的路径长度:从根结点到该结点的路径上的连接数3.树的路径长度:就是树的每个叶⼦结点的路径⻓度之和4.结点的带权路径⻓度:结点的路径⻓
  • 2024-05-31蚂蚁
    这一道题目蓝书上说的有错,不应该用等价这个词实际上,原图中任意一种连边方案(无论是否相交)与二分图的一个完备匹配构成双射而由于我们只用求一种方案,又证明了二分图的带权最小匹配一定是不相交的,所以可以这么求那数据保证有解的意思是什么?原图一定是二分图,也就一定有带权最小匹配
  • 2024-05-25C126 带权并查集 P1196 [NOI2002] 银河英雄传说
    视频链接:   P1196[NOI2002]银河英雄传说-洛谷|计算机科学教育新生态(luogu.com.cn)//带权并查集#include<iostream>usingnamespacestd;constintN=30005;intT;intp[N],d[N],siz[N];intfind(intx){if(p[x]==x)returnx;intt=find(p[x
  • 2024-04-04操作系统综合题之“短进程优先调度算法(Shortest-Process-First,SPF)计算平均周转时间以及平均带权周转时间”
    一、问题:有4个进程A、B、C、D,他们的到达时间、预计运行时间以及优先级数值(优先级数值越小,表示优先级越高)如下表所示。(注:精确到小数点后2位) 1.请计算采用短进程优先调度算法的平均周转时间和平均带权周转时间2.请计算采用抢占式优先调度算法的平均周转时间和平均带权周转时间
  • 2024-03-16邻接表存储带权的无向图(c++题解)
    题目描述给出一个无向带权图,顶点数为n,边数为m。输入格式第一行两个整数n,m,接下来有m行,每行3个整数u,v,w,表示点u到点v有一条边,边权为w。输出格式第i行输出第点i的所有邻接点,按照点i到该点的边权由小到大输出,如果边权相等,则按照点的编号有小到大输出。样例样例输入复
  • 2024-03-02带权并查集板子
    以一道区间和查询来说明板子如何使用1.merge的时候只需要维护两个根节点的距离,利用的是合并时题目给的信息2.find的时候更新维护是子节点到根的距离3.需要加一个查询函数,因为距离数组是开在结构体内部的。题目描述对于一个长度为\(N\)的整数数列\(A_{1},A_{2},\cdotsA_
  • 2023-12-15哈夫曼树和哈夫曼编码
      路径:由树中一个结点到另一个结点之间的分支构成。路径长度:路径上分支的数目。树的带权路径长度:树中所有叶子结点的路径长度与权重的乘积之和,通常记作WPL。 WPL=2*6+2*9+3*2=36 带权路径长度WPL最小的二叉树称作最优二叉树或赫夫曼树。   设一组权值集合W=
  • 2023-12-09带权并查集
    对于种类并查集主要是考虑清楚到根节点距离分为几类,每一类的意义有的题目相出d数组的含义才能想到用带权并查集//find函数需要变化intfind(intx){if(p[x]!=x){introot=find(p[x]);d[x]+=d[p[x]];p[x]=root;}retur
  • 2023-11-20带权拟阵交
    '''cppinclude<bits/stdc++.h>includeusingnamespacestd;constintN=505;intn,m;map<int,vector<pair<int,int>>>E;map<int,int>limit;typedeflonglongll;structuni{intp[N];intcnt;voidinit(){
  • 2023-11-20带权并查集
    很新奇啊这个东西。用来解决形如\(x_i-x_j=y\)系列方程组有无解的问题。思路很简单,\(dis_i\)代表从\(i\)的祖先与\(i\)之间的差值。这样能秒算出方程组中任意两个点的差值。本质是每次把两个方程组合并。找祖先部分:intfindpa(intx){ if(fa[x]!=x){ int
  • 2023-11-13[题解]AT_abc328_f [ABC328F] Good Set Query
    思路带权并查集模板。如果对于一个三元组\((a,b,c)\)如果它能够添加到\(S\)中一定满足如下条件中的一条:\(X_a,X_b\)满足其中有一个是「不确定」的。在这里\(X_i\)「不确定」指\(X_i\)没有与其它的任意\(X_j\)有关系。\(X_a,X_b\)有间接或直接的关系,但是能计算
  • 2023-11-11并查集拓展——种类并查集&带权并查集
    在所面临的问题中,我们不仅需要知道两个元素之间是否存在关系,还需要记录其他要素,于是我们需要对原来的并查集进行拓展。种类并查集对于一般的并查集,只能表示“朋友的朋友就是朋友这种关系”,即我们只关系元素之间的连通性问题。但是对于“敌人的敌人就是朋友”这种关系则无能为力
  • 2023-10-22[HNOI2010] 平面图判定-平面图性质、带权并查集/2-sat
    [HNOI2010]平面图判定-平面图性质、带权并查集/2-sathttps://www.luogu.com.cn/problem/P3209题意:给一张\(n\)个点,\(m\)条边的哈密顿图,并且哈密顿回路已知,问是否是平面图,\(T\)组询问。\(1\leqT\leq100,1\leqn\leq200,1\leqm\leq10^4\)。转换挺奇妙的。极大平面
  • 2023-10-08动态规划——带权二分优化DP 学习笔记
    动态规划——带权二分优化DP学习笔记引入带权二分其实并不一定用于优化DP,也可能用于优化贪心等最优化的算法。带权二分也叫WQS二分,最初由王钦石在他的2012年国家集训队论文中提出。定义使用情况要解决一个最优化问题(求最大/最小值)有一个限制,一般是某个参数要求一
  • 2023-09-04(测试)带权并查集
    带权并查集普通的并查集只能维护每个节点所在集合的编号,带权并查集则可以维护集合内任意一点到所在集合根的距离。带权并查集是结点存有权值信息的并查集。相比于一般的并查集,带权并查集需要开辟两个数组:一个是dsu[N],用来判断集合关系;一个是dis[N],用来描述其与根节点的关系。当
  • 2023-08-11并查集专题
    并查集专题\(AcWing\)\(836\).合并集合【最简并查集,路径压缩概念】\(AcWing\)\(837\).连通块中点的数量【并查集+附加家族成员数量】\(AcWing\)\(240\).食物链【扩展域并查集,带权并查集】\(AcWing\)\(1250\).格子游戏【普通并查集】\(AcWing\)\(1252\).搭配
  • 2023-07-27The Third Letter带权并查集
    Problem-1850H-Codeforces题意是给你a,b,c说明a在b后面c个单位(c<0就是在左边),每个位置只能有一个数,一共有n个位置,告诉你m个关系,问是否符合条件我们可以设置d[x]表示x到它的最早的父节点的距离,然后如果两个数父节点一样,那么c!=d[a]-d[b]时就说明不符合条件那么对于并查
  • 2023-07-17并查集和带权并查集原理分析
    并查集是算法竞赛中常用的一种数据结构。它可以高效地处理集合之间的操作与询问。其主要功能是查询两个元素是否在同一个集合以及将两个集合合并。第一部分并查集的基本操作算法思想我们将所有元素建成很多棵树(森林),每一棵树就是一个集合。因为并查集是一个树结构,那么每
  • 2023-07-15WQS二分/带权二分/凸包优化
    WQS二分/带权二分/凸包优化应用范围限制个数:给定一些物品和选物品的限制条件,要求刚好选\(m\)个,让你最大化(最小化)权值。单调性:选的物品越多,权值越大(越小)。分析1.原理解释:假设限制不固定,当选\(x\)个时,最大权值为\(f(x)\)。算法的核心就是将“选取物品”这一操作赋
  • 2023-06-28[数据结构]笛卡尔树、ST表、带权并查集
    Cartesiantree(笛卡尔树)1.概念比如拿最小的当根建树,中序遍历是原数组2.性质区间最小值(RMQ),LCA的值,比如上图4和6的LCA是2,表示我们4,6,2这个区间里面的最小值是2找y左边第一个<=y的数就是y往上看第一个向左拐的数3.构造(增量法)对每个前缀考虑我们发现只有右链是
  • 2023-05-24浅谈 树上带权最长最短路径,决策包容性与点分树
    树上带权最长最短路径,决策包容性与点分树\(\text{preface}\)最近学习了点分树相关的内容,也碰巧见识到了许多……树上路径问题(非负权),最长或是最短,有的可以用点分治(树)解决,有的可以用线段树解决,有的需要深层次挖掘性质,就在这里做一个小小地总结了一些另类的方法。1.树上带权最长
  • 2023-05-23第五章 5.5.1 哈夫曼树
    哈夫曼树带权路径长度定义构造哈夫曼编码带权路径长度哈夫曼树哈夫曼树的构造另一种构造方式哈夫曼编码固定长度编码可变长度编码->允许对不同字符用不等长的二进制位表示前缀编码->没有歧义知识回顾
  • 2023-05-02带权并查集
    做了cf上一道题后发现我对并查集的理解不够深刻,顺带把带权并查集学一下。并查集初始化:对于一个集合A的所有元素,我们知道对于其中任意一个元素i,i€A。此时,我们可以认为i与A之间存在一条虚边,如果有新的元素要加入集合A,将该元素与A建一条边即可。这条边我们用数组fa[i]
  • 2023-03-14最短路
    #include<bits/stdc++.h>usingnamespacestd;intg[205][205];intmain(){memset(g,0x3f,sizeofg);intn,m,k;cin>>n>>m>>k;while(m--){in