E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《算法竞赛进阶指南》
《
算法竞赛进阶指南
》直方图中最大的矩形
直方图中最大的矩形直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1:2559_1.jpg通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形。输入格式输入包含几个测试
蓝鲸
·
2023-10-01 16:20
《算法竞赛进阶指南》
#
单调栈模板题
算法
《
算法竞赛进阶指南
》之栈篇(包含min函数的栈+编辑器+火车进栈+直方图中最大的矩形)
《
算法竞赛进阶指南
》续篇~文章目录包含min函数的栈解题思路AC代码编辑器解题思路AC代码火车进栈题目大意解题思路AC代码直方图中最大的矩形解题思路AC代码包含min函数的栈原题链接:https://www.acwing.com
jigsaw_zyx
·
2023-10-01 16:49
算法竞赛进阶指南
数据结构
算法
编辑器
多边形,《
算法竞赛进阶指南
》,
283.多边形-AcWing题库“多边形游戏”是一款单人益智游戏。游戏开始时,给定玩家一个具有N个顶点N条边(编号1∼N)的多边形,如图1所示,其中N=4每个顶点上写有一个整数,每个边上标有一个运算符+(加号)或运算符*(乘号)。第一步,玩家选择一条边,将它删除。接下来在进行N−1步,在每一步中,玩家选择一条边,把这条边以及该边连接的两个顶点用一个新的顶点代替,新顶点上的整数值等于删去的两个顶点上
Landing_on_Mars
·
2023-10-01 16:19
#
区间dp
算法
蓝书(
算法竞赛进阶指南
)刷题记录——POJ1475 Pushing Boxes(bfs套bfs)
题目:POJ1475.题目大意:给定一个n∗mn*mn∗m的迷宫,现在有一个箱子和一个人,要求让这个人把箱子推到指定位置,求箱子的移动步数最少的方案并输出,若有多个则要求人的移动步数也最少,若还有多个方案则输出任意一个.1≤n,m≤201\leqn,m\leq201≤n,m≤20.这是一道很套路的BFS套BFS板子,而且还要输出路径.其实挺好做的,我们在外面BFS出箱子如何移动,然后在外层BFS判
hezlik
·
2023-09-26 02:04
移动服务,《
算法竞赛进阶指南
》
274.移动服务-AcWing题库一个公司有三个移动服务员,最初分别在位置1,2,3处。如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q)。这个函数不一定对称,但保证c(p,p)=0。给出N个请求,请求发生的位置分别为p1∼pN。公司必须按顺序依次满足所有请求,且
Landing_on_Mars
·
2023-09-18 07:38
#
线性dp
算法
数据结构
线性dp
《
算法竞赛进阶指南
》矩阵距离
矩阵距离给定一个N行M列的01矩阵A,A[i][j]与A[k][l]之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个N行M列的整数矩阵B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])输入格式第一行两个整数N,M。接下来一个N行M列的01矩阵,数字之间没有空格。输出格式一个N行M列的
蓝鲸
·
2023-09-10 21:38
bfs搜索
通信线路,《
算法竞赛进阶指南
》
在郊区有N座通信基站,P条双向电缆,第i条电缆连接基站Ai和Bi。特别地,1号基站是通信公司的总站,N号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第i条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从1号基站到N号基站的路径,并指定路径上不超过K条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少
Landing_on_Mars
·
2023-09-03 10:48
最短路
算法
数据结构
《
算法竞赛进阶指南
》------图论篇2
文章目录0x0E雨天的尾巴洛谷p4556(线段树合并+树上差分+树链lca)0x0FCF600ELomsatgelral(线段树合并)0x10天天爱跑步NOIP2016P1600(树链LCA和树上差分)0x11异象石Acwing(树链LCA+时间戳)0x12次小生成树(倍增LCA+路径上权值最大和次大的保存)0x13疫情控制(倍增LCA+思维+根到叶子检查点)0x0E雨天的尾巴洛谷p4556(线段
axtices
·
2023-07-25 17:26
图论
图论
算法
无向图的割点与割边
参考:李煜东:《
算法竞赛进阶指南
》因为割点的判定法则是小于等于号,所以在求割点的时候,不必考虑父节点和重边的问题从点u出发的所有点的时间戳都可以用来更新low[x]···若u不是搜索树的根结点(dfs的起点
Yjmstr
·
2023-07-16 19:54
图论
tarjan
割点
《
算法竞赛进阶指南
》0x62 最小生成树
0x62最小生成树走廊泼水节题意:给定一棵树,将这棵树加边,扩充为完全图,使完全图的最小生成树为原来的树,询问增加的边权值总和最小是多少解析:考虑kruskal产生最小生成树的过程:选择当前连接两个连通块边权最小的边。所以,对于最小生成树上的边,该边一定是两个连通块之间唯一的最短边,设该边权值为www,则两个连通块之间的边权值一定大于www,最小为w+1w+1w+1。设树上边连接的两个连通块的大小
hydqiln
·
2023-06-24 11:31
算法竞赛进阶指南
算法
图论
c++
《
算法竞赛进阶指南
》(持续更新ing)
算法竞赛进阶指南
位运算AcWing89.a^b#includeusingnamespacestd;intmain(void){longlonga,b,p;cin>>a>>b>>p;longlongans
Hayaizo
·
2023-06-11 16:14
算法
深度优先
c++
0x12 内容简介与例题习题
队列单调队列【例题】最大子序和(AcWing135)【习题】滑动窗口(AcWing154)《
算法竞赛进阶指南
》读书笔记汇总这里面是我在阅读《
算法竞赛进阶指南
》这本书时的一些思考,有兴趣可以瞧瞧!
juruo_c
·
2023-04-19 13:28
算法竞赛进阶指南
算法
数据结构
0x11 内容简介与例题习题
栈栈与卡特兰序列【例题】进出栈序列问题(AcWing130)表达式计算【练习】表达式计算4(AcWing151)单调栈【例题】直方图中最大的矩形(AcWing131)【练习】城市游戏(AcWing152)《
算法竞赛进阶指南
juruo_c
·
2023-04-19 13:58
算法竞赛进阶指南
算法
《
算法竞赛进阶指南
》0x59 单调队列优化DP
0x59单调队列优化DP在正确性的前提下,及时排除不可能的决策,保持决策集合内部有序和查找决策的高效性。对于形如dpi=min{dpj+f(i)+f(j)}dp_i=\min\{dp_j+f(i)+f(j)\}dpi=min{dpj+f(i)+f(j)},都可以尝试使用单调队列优化。“一个人如果比你小还比你强,那么你就永远不如他”例如状态转移方程fi=maxj≥i−ri−l{fj+ai+bj}
hydqiln
·
2023-04-16 09:36
算法竞赛进阶指南
算法
c++
动态规划
数据结构
《
算法竞赛进阶指南
》0x60 斜率优化DP
0x60斜率优化DP任务安排题意:nnn个任务排成序列,将任务分批。执行第iii个任务所需要时间tit_iti。每批任务开始前,需要sss时间,一批任务所需要的时间为sss加上每个任务需要时间。同一批任务的完成时间为该批所有任务执行完成的时间。每个任务的代价为完成时刻与费用系数cic_ici的成绩。询问最小总费用。数据规模:1≤n≤5000,1≤ti,ci≤100,0≤s≤501\len\le50
hydqiln
·
2023-04-16 09:35
算法竞赛进阶指南
动态规划
算法
c++
算法竞赛进阶指南
算法整理
title:
算法竞赛进阶指南
算法整理date:2022-10-2511:39:26tags:
算法竞赛进阶指南
算法整理基本算法位运算与或非异或and,&or,|not,~xor,^(C++)算术右移(n>
y_z_s_
·
2023-04-14 19:47
算法竞赛进阶指南
算法
排序算法
c++
算法竞赛进阶指南
0x58 数据结构优化DP
文章目录[AcWing\295.清理班次](https://www.acwing.com/problem/content/description/297/)[AcWing\296.清理班次2](https://www.acwing.com/problem/content/description/298/)[AcWing\297.赤壁之战](https://www.acwing.com/proble
xjsc01
·
2023-04-14 18:46
#
算法竞赛进阶指南(ACM培训)
算法
数据结构
图论
动态规划
c++
算法竞赛进阶指南
0x50 动态规划
算法竞赛进阶指南
0x50动态规划该书的数学知识,竟然下不了手,那么好吧,至少要AC一道,从动态规划开始吧,多少有一定积累2018-2-1310:04http://begin.lydsy.com/JudgeOnline
mrcrack
·
2023-04-14 18:43
算法竞赛进阶指南
《
算法竞赛进阶指南
》0x41 并查集
0x41并查集程序自动分析题意:一些变量,之间是相等与不相等关系。询问所有约束条件是否可以同时满足解析:并查集。并查集维护相等的变量,对于不相等变量,检查是否在在同一并查集里。注意离散化代码:#includeusingnamespacestd;typedeflonglongll;typedefdoubledb;#definefifirst#definesesecondconstintmaxn=1e
hydqiln
·
2023-04-14 18:12
算法竞赛进阶指南
算法
c++
图论
《
算法竞赛进阶指南
》0x54 树形DP
0x54树形DP285.没有上司的舞会题意:上司关系构成一棵树,一个人不能和直系上司同时出现在舞会,每个人有点权,询问能同时出现在舞会上的最大权值和。(最大权独立集)解析:令fu,0/1f_{u,0/1}fu,0/1为以uuu为根的树满足条件的最大权值和。如果选了上司,所有儿子都不能选;如果没选上司,儿子可选可不选{fu,0=∑max(fv,0,fv,1)fu,1=∑fv,0\begin{cas
hydqiln
·
2023-04-14 18:12
算法竞赛进阶指南
算法
c++
图论
动态规划
【
算法竞赛进阶指南
】学习笔记
下面是个目录呀0xFF前言0x00基本算法0x01位运算0x02递推与递归0x03前缀和与差分0x04二分0x05排序0x06倍增0x07贪心0x10基本数据结构0x11栈0x12队列0x13链表与邻接表0x14Hash0x15字符串0x16Trie0x17二叉堆0x50动态规划0x51线性dp0x52背包0x53区间dp0x54树形dp0x55环形与后效性处理0x56状态压缩dp0x57倍增优化
juruo_c
·
2023-04-14 18:09
算法竞赛进阶指南
算法
《
算法竞赛进阶指南
》0x58 数据结构优化DP
0x58数据结构优化DP清理班次题意:给定区间[1,T][1,T][1,T],给定nnn条线段[li,ri][l_i,r_i][li,ri],选择最少数量的线段,使区间每个点都被覆盖解析:将所有线段按右端点rir_iri升序排序。令fif_ifi为覆盖区间[1,i][1,i][1,i]所有点的最少线段数。对每条线段[li,ri][l_i,r_i][li,ri],都有转移fri=min(fri,m
hydqiln
·
2023-04-14 18:08
算法竞赛进阶指南
算法
数据结构
c++
动态规划
算法竞赛进阶指南
:自然数拆分(Python)
题目描述:给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复。注意:拆分方案不考虑顺序;至少拆分成2个数的和。求拆分的方案数mod2147483648的结果。输入格式一个自然数N。输出格式输入一个整数,表示结果。数据范围1≤N≤4000输入样例:7输出样例:14题目分析:很明显是完全背包的模型将最后要得到的数看作背包的体积将凑出该数的每一个数看作物品的体积因此问题转化
正在黑化的KS
·
2023-04-14 14:52
算法竞赛进阶指南
算法
python
动态规划
《
算法竞赛进阶指南
》0x51 线性DP
0x51线性DP271.杨老师的照相排列题意:NNN个人站成左端对齐的kkk排,每排有NiN_iNi人,Ni>NjN_i>N_jNi>Nj如果iNjN_i>N_jNi>Nj。每一排从左到右身高递减,每一列从后到前身高递减。询问方案数。解析:按照身高从大到小的顺序决定位置。在任意时刻,已经确定位置的人在每一行中一定是从左开始的连续位置。用kkk元组可以描述当前已经确定的位置。在决定当前人的位置时,可
hydqiln
·
2023-04-13 00:28
算法竞赛进阶指南
算法
图论
动态规划
《
算法竞赛进阶指南
》0x52 背包
0x52背包数字组合题意从NNN个正整数中选出若干数,和为MMM,询问方案数解析:01背包。代码:#includeusingnamespacestd;typedeflonglongll;typedefdoubledb;#definefifirst#definesesecondconstintmaxn=1e5+10;constintINF=0x3f3f3f3f;typedefpairpii;intn
hydqiln
·
2023-04-13 00:28
算法竞赛进阶指南
算法
c++
动态规划
《
算法竞赛进阶指南
》0x53 区间DP
0x53区间DP石子合并题意:合并两堆相邻石子的代价为两堆石子的质量和。将所有堆石子合并为1堆的最小代价。解析:长的区间一定由短区间转移,所以按区间长度划分阶段。枚举长区间的分割点进行转移代码:#includeusingnamespacestd;typedeflonglongll;typedefdoubledb;#definefifirst#definesesecondconstintmaxn=3
hydqiln
·
2023-04-13 00:54
算法竞赛进阶指南
算法
深度优先
图论
动态规划
[线段树] AcWing-245 你能回答这些问题吗
思路这道题要求的是区间查询和单点修改,每一次查询都是求最大连续区间和,鉴于我是在《
算法竞赛进阶指南
》的线段树篇看到的这个题目,所以我们使用线段树来求解这个问题。
LECOMTEDE
·
2023-04-12 17:58
算法
c++
《
算法竞赛进阶指南
》0x42 树状数组
0x42树状数组楼兰图腾题意:二维平面给定一些点,询问v形和∧形数目解析:对于∧形:(i,y)(i,y)(i,y),考虑左右两侧比该点低的点的个数。树状数组查询yjusingnamespacestd;typedeflonglongll;typedefdoubledb;#definefifirst#definesesecondconstintmaxn=4e5+10;constintN=4E5;con
hydqiln
·
2023-04-11 13:00
算法竞赛进阶指南
算法
图论
c++
斐波那契 -- 矩阵快速幂
acwing
算法竞赛进阶指南
打卡活动——数学知识——斐波那契前置知识快速幂,矩阵乘法题意在斐波那契数列中,F0=0,F1=1,Fn=Fn−1+Fn−2(n>1).F_0=0,F_1=1,F_n=F_{n
bloom__❀;
·
2023-04-08 23:30
矩阵
算法
c++
算法竞赛从入门到进阶pdf_ACMICPC/CCPC算法竞赛入门建议
Codechef小伙伴们一起来van呀~交流群:1104993647一起来比赛吧牛客编程巅峰赛S2第8场-钻石&王者入门推荐书籍:算法竞赛入门经典(紫书,蓝书)挑战程序设计竞赛(白书)C++Primer
算法竞赛进阶指南
熟悉
weixin_39867142
·
2023-04-06 10:41
算法竞赛从入门到进阶pdf
算法竞赛进阶指南
0x43 线段树
文章目录线段树简介线段树的简单代码实现建树代码修改操作查询操作线段树的查询操作的时间复杂度分析:[AcWing245.你能回答这些问题吗](https://www.acwing.com/problem/content/246/)思路代码[时间复杂度:O((N+M)logN)O(\space(N+M)logN)O((N+M)logN)]错误分析[AcWing246.区间最大公约数](https://
xjsc01
·
2023-04-01 22:56
#
算法竞赛进阶指南(ACM培训)
算法
c++
开发语言
数据结构
算法竞赛进阶指南
0x41并查集
并查集简介并查集的两类操作:Get查询任意一个元素是属于哪一个集合。Merge把两个集合合并在一起。基本思想:找到代表元。注意有两种方法:使用一个固定的值(查询方便,但是在合并的时候需要修改大量的值,比较复杂)使用树形结构,这样合并的时候可以直接让一个叫另一个eg.f[root1]=root2并查集的路径压缩以及按秩合并路径压缩:在每一次进行合并的时候,顺便更改每一个节点的值。(均摊复杂度:O(l
xjsc01
·
2023-04-01 22:26
#
算法竞赛进阶指南(ACM培训)
算法
c++
开发语言
数据结构
算法竞赛进阶指南
0x67 Tarjan 算法与有向图连通性
相关概念有向图G=(V,E)G=(V,E)G=(V,E)中,如果存在一个点rrr,使得从rrr出发,那么就可以到达所有的节点,那么称G为一个流图,记作(G,r)(G,r)(G,r)有向图的强连通分量对于强连通子图的等价条件就是具有一条经过所有节点的环(环的路径可以重复走)在深度优先搜索树中,容易发现,需要找到最外层的环即可,这样,环里面由于具有树枝边,所以与外面的环一起,构成强连通。对于有向图的4
xjsc01
·
2023-04-01 22:26
#
算法竞赛进阶指南(ACM培训)
算法
图论
深度优先
c++
开发语言
《
算法竞赛进阶指南
》0x41 T4 Parity Game
题目传送门题目描述小A和小B在玩一个游戏。首先,小A写了一个由0和1组成的序列S,长度为N。然后,小B向小A提出了M个问题。在每个问题中,小B指定两个数l和r,小A回答S[l∼r]中有奇数个1还是偶数个1。机智的小B发现小A有可能在撒谎。例如,小A曾经回答过S[1∼3]中有奇数个1,S[4∼6]中有偶数个1,现在又回答S[1∼6]中有偶数个1,显然这是自相矛盾的。请你帮助小B检查这M个答案,并指出
G·Dking
·
2023-04-01 22:47
算法竞赛进阶指南
c++
《
算法竞赛进阶指南
》0x49 T2 Rochambeau
题目描述N个小朋友(编号为0,1,2,…,N−1)一起玩石头剪子布游戏。其中一人为裁判,其余的人被分为三个组(有可能有一些组是空的),第一个组的小朋友只能出石头,第二个组的小朋友只能出剪子,第三个组的小朋友只能出布,而裁判可以使用任意手势。你不知道谁是裁判,也不知道小朋友们是怎么分组的。然后,孩子们开始玩游戏,游戏一共进行M轮,每轮从N个小朋友中选出两个小朋友进行猜拳。你将被告知两个小朋友猜拳的胜
G·Dking
·
2023-04-01 22:47
算法竞赛进阶指南
c++
《
算法竞赛进阶指南
》0x41 T3 银河英雄传说
题目传送门题目描述有一个划分为N列的星际战场,各列依次编号为1,2,…,N。有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。有T条指令,每条指令格式为以下两种之一:Mij,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。Cij,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列
G·Dking
·
2023-04-01 22:17
算法竞赛进阶指南
c++
《
算法竞赛进阶指南
》0x41 T1 程序自动分析
题目传送门题目描述在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4,这些约束条件显然是
G·Dking
·
2023-04-01 22:16
算法竞赛进阶指南
c++
《
算法竞赛进阶指南
》0x41 T2 Supermarket
题目传送门题目描述超市里有N件商品,每件商品都有利润pi和过期时间di,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数N开始,接下来输入N对pi和di,分别代表第i件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正确。输出格式对于每组产品
G·Dking
·
2023-04-01 22:16
算法竞赛进阶指南
c++
《
算法竞赛进阶指南
》刷题记录
0x00基础算法0x01位运算0x02递归与递推0x03前缀和与差分0x04二分0x05排序0x06倍增0x07贪心0x08总结与练习0x10基本数据结构0x11栈0x12队列0x13链表与邻接表0x14Hash0x15字符串0x16Trie0x17二叉堆0x18总结与练习0x40数据结构进阶0x41并查集转载于:https://www.cnblogs.com/kkkstra/p/jjzn.htm
weixin_30294021
·
2023-04-01 21:08
数据结构与算法
算法竞赛进阶指南
——0x41【并查集】
文章目录引言正文普通并查集带边权的并查集扩展域的并查集总结引言并查集普通的就那种高端的有带边权的并查集和扩展域的并查集正文普通并查集vectorsize(N,1
WTcrazy _
·
2023-04-01 21:32
算法拾遗
数据结构
算法竞赛进阶指南
——0x62【最小生成树】
文章目录Kruskal算法Prim算法Kruskal算法用于稀疏图(即边少的图),用到并查集的知识structwt//**一击即中yes**//{intx,y,z;}e[N
WTcrazy _
·
2023-04-01 21:32
算法拾遗
算法
算法竞赛进阶指南
---0x41(并查集)Parity game
题面输入样例10512even34odd56even16even710odd输出样例3题解嗯。。。。想不出来什么引导过程,直接上题解吧,我们先来推导一个性质,设Si表示前i个数中1的个数,那么设S[l,r]中有奇数个1,我们就可以推出Sr与Sl-1的奇偶性不同。这个应该很好理解吧,就是不论一个数是奇数还是偶数,加上一个奇数,就会变(奇+奇=偶,偶+奇=奇),这样我们就将区间的奇偶转化成了两个边界的
(xsj)
·
2023-04-01 21:00
#
并查集
数据结构
并查集
离散化
算法竞赛进阶指南
0x49(并查集) 石头剪子布
题面题解我用的是带边权的并查集,那么就要维护到祖宗节点的距离,我们用上图的关系来表示两个人之间的关系(d[x]-d[y])%3==1说明x>y题中说还有裁判,那么我们就枚举裁判,然后开始判断条件做并查集,遇到有关裁判的,直接跳过,因为裁判可以任意出,一定是没有矛盾的,否则,如果两个人不在一个集合,就按大小关系合并,然后维护到祖宗节点的距离;对于在一个集合中的,就判断是否与之前矛盾,如果与之前有矛盾
(xsj)
·
2023-04-01 21:00
#
并查集
并查集
算法竞赛进阶指南
---0x41 (并查集) 程序自动分析
题面题解很明显的并查集,并查集是将有关联的(相等,连通,吃与被吃)元素放入到一个集合中进行维护(集合大小,到祖宗节点的距离),之后对集合或集合之间的关系进行询问。我们可以发现约束条件的顺序不影响最后的结果,因此我们可以先将所有相等的约束条件放入集合中维护(合并),然后再判断不相等的约束条件是否在一个集合中,如果在一个集合中,就矛盾,因为在一个集合中表示的是相同的约束条件。看本题的数据范围,数据范围
(xsj)
·
2023-04-01 21:30
#
并查集
算法
数据结构
并查集
算法竞赛进阶指南
---0x41 (并查集) 银河英雄传说
题面题解题中有两种操作方式,一种是合并两个集合,一种是询问集合中元素的关系(距离),那就是并查集,而且是要维护到祖宗节点距离的并查集先看查询操作,我们可以用一个d[x]数组维护x到p[x]的距离,在每次find(x)操作之后+路径压缩,那么x到p[x]的距离就是x到祖宗节点的距离,如果两个战舰x,y在同一个集合中,abs(d[x]-d[y])-1不就是两个战舰之间还有多少个战舰,如果不在就返回-1
(xsj)
·
2023-04-01 21:30
#
并查集
算法
数据结构
并查集
《
算法竞赛进阶指南
》 0x41 + 0x44 代码 + 杂谈
并查集普通并查集程序自动分析#includeusingnamespacestd;constintmaxn=2e6+5;intn,m;intpre[maxn];voidinit(intn){for(inti=1;i>t;while(t--){intcnt=0;cin>>n;init(n*2);intx,y,d;mapid;vector>b;while(n--){cin>>x>>y>>d;if(!id
ZHXU1998
·
2023-04-01 21:56
题集
《算法竞赛进阶指南》杂谈
[
算法竞赛进阶指南
0x40 ] 杂谈
持续跟新并查集[NOI2015]程序自动分析在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x4≠
ZHXU1998
·
2023-04-01 21:25
题集
《算法竞赛进阶指南》杂谈
算法竞赛进阶指南
读书笔记——0x05排序
排序常用排序算法9种常用排序算法及其关系如图所示:下面以从小到大排序为例详解9种排序。冒泡排序&选择排序从未排序的元素中选出最小的放在已排序元素的末尾,逐步确定第n小元素,如图:冒泡排序思路:逐个交换为了选取未排序元素中的最大元素(已排序元素向前插入,故需寻找最大元素),我们遍历未排序元素,如果发现下一个元素更小,则将二者交换,被换至已排序元素末尾的一定是未排序元素中的最大元素,如图:优点:具有稳
wxxcl0825
·
2023-04-01 21:54
算法学习
算法
排序算法
c++
算法竞赛进阶指南
基本算法 0x05 排序
离散化可以把a数组排序并去掉重复的值,得到有序数组b,在b数组的下标i与数值b[i]之间建立映射关系;若要查询整数a[j](j≤nj\leqnj≤n)被哪个1~m之间的整数代替,只需在b数组中二分查找a[j]的位置即可voiddiscrete(){//离散化sort(a+1,a+n+1);for(inti=1;iq,每把货仓往左移一个单位,总距离减小p-q;若p#include#defineend
5pace
·
2023-04-01 21:43
算法
数据结构
排序算法
算法竞赛进阶指南
0x41 并查集
并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细地说,并查集包括如下两个基本操作:1.Get:查询一个元素属于哪一个集合。2.Merge:把两个集合合并成一个大集合。为了具体实现并查集这种数据结构,我们首先需要定义的表示方法。在并查集中,我们采用“代表元"法,即为每个集合选择一个固定的元素,作为整个集合的"代表"。其次,我们要定义归属关系的表
闫鸿宇
·
2023-04-01 21:51
算法竞赛进阶指南
算法
数据结构
c++
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他