- 博客(304)
- 收藏
- 关注
原创 F2. Field Division (hard version)(离散化,*****)
范围很大,但有效的点很少,可以离散化处理,然后按照特殊的顺序进行处理,时间复杂度为。O(n),难点在于代码的。
2024-08-23 16:59:05 273
原创 牛客竞赛数据结构专题班树状数组、线段树练习题
令 f[i][0/1] 表示从第 1 层的左边(0)或右边(1)到第 i 层的左边(0)或右边(1)的方案数。不能发现这个问题如果不带修改则可以用 dp+前缀和(矩阵乘法)解决,带修改则可以用线段树维护区间和。我们可以将每一层的转移状态用矩阵表示,
2024-08-18 21:04:25 379
原创 918. 软件包管理器(树链剖分,@模板题)
Linux 用户和 OSX 用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu 使用的 apt-get,Fedora/CentOS 使用的 yum,以及 OSX 下可用的 homebrew 都是优秀的软件包管理器。你决定设计你自己的软件包管理器。不可避免地,你要解决软件包之间的依赖问题。
2024-08-17 14:49:31 346
原创 2568. 树链剖分(树链剖分,@模板题)
给定一棵树,树中包含 n 个节点(编号 1∼n),其中第 ii 个节点的权值为 ai。初始时,1 号节点为树的根节点。
2024-08-17 00:24:36 343
原创 2488. 树套树-简单版(线段树套multiset)
1 pos x2 l r x数列中的位置从左到右依次标号为 1∼n。区间 [l,r] 表示从位置 l 到位置 r 之间(包括两端点)的所有数字。区间内排名为 k 的值指区间内从小到大排在第 k 位的数值。(位次从 1 开始)
2024-08-16 15:45:32 213
原创 955. 维护数列(splay,综合模板)
请写一个程序,要求维护一个数列,支持以下 66 种操作:(请注意,格式栏 中的下划线表示实际输入文件中的空格)正在上传…重新上传取消。
2024-08-16 02:33:32 249
原创 EPIC Institute of Technology Round August 2024 (Div. 1 + Div. 2)
根据树的性质容易知道:对于节点 u 和其子节点 v,id[u] 为节点 u 在dfs序中的位置,size[u] 为以u为根的子树的大小。不难发现 [ id[v],id[v]+size[v]-1 ] 包含于 [ id[u],id[u]+size[u]-1 ],因此可以通过维护这两类区间来判断dfs序的正确性。首先需要一个setson[i],表示以 i 为父节点的子节点的在dfs序中的位置,通过以下代码便可判断出dfs序的正确性。
2024-08-12 17:02:32 470
原创 Codeforces Round 965 (Div. 2)
情况一:最大值可能值经过加1操作,这种情况下将所有的k次操作全部操作到这个数上最优,因为,将加1操作直接操做上最终结果一定加1,而操作到其他数字上最终结果最优情况下也是加1,所以这样操作情况不会变得更差。容易发现,要想结果最大,那么一定是最大值序列中的最大值加上剩下数字的中位数。情况二:最大化中位数。这种情况可以使用二分来查找最大情况的中位数。
2024-08-11 19:08:12 305
原创 1063. 永无乡(splay,启发式合并,并查集)
永无乡包含 n 座岛,编号从 1 到 n ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b ,则称岛 a 和岛 b 是连通的。
2024-08-10 22:12:11 379
原创 2437. Splay(模板题)
给定一个长度为 nn 的整数序列,初始时序列为 {1,2,…,n−1,n}序列中的位置从左到右依次标号为 1∼n我们用 [l,r] 来表示从位置 l 到位置 r 之间(包括两端点)的所有数字构成的子序列。现在要对该序列进行 m 次操作,每次操作选定一个子序列 [l,r],并将该子序列中的所有数字进行翻转。例如,对于现有序列,如果某次操作选定翻转子序列为 [3,6],那么经过这次操作后序列变为。请你求出经过 mm 次操作后的序列。
2024-08-10 15:42:24 252
原创 Codeforces Round 963 (Div. 2)
易发现每个灯的状态都是以 2k 为周期变化的,要想所有等都亮,则需要所有的灯在某一个 (r,r-k+1) 的区间内都亮。所以可以将所有的 ai 都 mod (2*k),再用双指针找到这个区间。最终的答案 s=max+(r-max)%(2*m)因为最终答案 s >=max(a) 的,所以。
2024-08-05 16:04:57 232
原创 P3391 【模板】文艺平衡树(@无旋Treap,* *)
其中需要提供以下操作:翻转一个区间,例如原有序序列是 5 4 3 2 1,翻转区间是 [2,4] 的话,结果是 5 2 3 4 1。第一行两个正整数 𝑛,𝑚n,m,表示序列长度与操作个数。序列中第 𝑖i 项初始为 𝑖i。输出一行 𝑛n 个正整数,表示原始序列经过 𝑚m 次变换后的结果。对于 100% 的数据,1≤𝑛,𝑚≤100000,1≤𝑙≤𝑟≤𝑛。接下来 𝑚m 行,每行两个正整数 𝑙,𝑟l,r,表示翻转的区间。您需要写一种数据结构(可参考题目标题),来维护一个有序数列。
2024-06-17 20:47:25 234
原创 Array Transformer(分块,入门,*)
给定一个序列,要求查询一个区间内有多少个数小于v。并且把第p个位置的值改为u * k / (R - L + 1)。
2024-05-18 00:30:14 238
原创 265. 营业额统计(平衡树,Treap,模板题,* * )
Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。Tiger 拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况。
2024-04-28 22:10:06 487
原创 255. 第K小数 (可持久化线段树,模板题,离散化,* * )
给定长度为 N 的整数序列 A,下标为 1∼N。现在要执行 M 次操作,其中第 i 次操作为给出三个整数 li,ri,ki,求 A[li],A[li+1],…,A[ri] (即 A 的下标区间 [li,ri])中第 ki 小的数是多少。
2024-04-27 23:02:50 345
原创 樱花下落的速度(区间放缩,思维)
来源:牛客网已知一朵樱花有 n 枚花瓣,每一枚花瓣各不相同。将它们用一个长为 n 的排列编号。我们根据一朵樱花的编号来认定它的特征:每一个排列均具有两组特征码 fa,fb。其中,fai 表示排列 p 中第 1 个到第 i 个数的 MEX(前缀 MEX),fbi 表示排列 p 中第 i 个到第 n 个数的 MEX(后缀 MEX)。fa 由 fa1,fa2,⋯ ,fan 组成,fb 由 fb1,fb2,⋯ ,fbn 组成。
2024-04-24 20:00:14 311
原创 D 无限的韵律源点 (STL_set +对顶堆 , 线段树+离散化 , * * * * *)
Arcaea(韵律源点)是一款著名的音乐游戏(以下简称 arc)。在 arc 中,玩家评分 (PTT) 是 total best 和 recent best 两部分分数维护的所有曲目的单曲评分平均值。recent best 部分维护的,是你当前时刻下最近游玩的前 ra 首曲目中单曲得分最高的前 rb 首曲目;total best 部分维护的,是你所有的曲目中单曲得分最高的前 b 首曲目。
2024-04-23 22:04:18 836
原创 M - 上帝造题的八分钟(数位dp,dfs—dp,****)
我们称一个数为 fufu 数,当且仅当一个数满足下述性质:它的数位中有至少 333 个相邻的数字 333,且数字 000 的个数与数字 111 的个数相差至少为 111 的正整数。给定一个区间 [l,r][l,r][l,r],你需要求出区间内的 fufu 数的个数。答案对 109+710^9+7109+7 取模。
2024-04-23 12:29:02 364
原创 1081. 度的数量(@数位dp)
求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=24+2018=24+2120=24+22。
2024-04-22 22:21:45 543
原创 I fumo 星(STL,数学)
假设平面上有 nnn 颗 fumo 星,编号分别为 1,2,…,n1,2,\dots,n1,2,…,n。求这样的直线的数量:直线经过这 nnn颗 fumo 星中至少222 个序号不同的 fumo 星。
2024-04-22 21:29:24 374
原创 831. KMP字符串(KMP,模板题,@next数组详解)
给定一个字符串 S,以及一个模式串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串 P 在字符串 S 中多次作为子串出现。求出模式串 P 在字符串 S 中所有出现的位置的起始下标。
2024-04-17 22:16:42 833
原创 1275. 最大数(线段树,模板题)
给定一个正整数数列 a1,a2,…,an,每一个数都在 0∼p−1 之间。程序运行的最开始,整数序列为空。一共要对整数序列进行 m 次操作。写一个程序,读入操作的序列,并输出询问操作的答案。
2024-04-10 23:06:58 332
原创 239. 奇偶游戏(带权值并查集,邻域并查集,《算法竞赛进阶指南》)
小 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,显然这是自相矛盾的。
2024-04-09 23:30:45 400
原创 6. 多重背包问题 III(多重背包问题,单调队列优化)#困难,男人八题
有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。
2024-03-12 16:49:52 802
原创 1019. 庆功会(多重背包问题)
为了庆贺班级在校运动会上取得全校第一名成绩,班主任决定开一场庆功会,为此拨款购买奖品犒劳运动员。期望拨款金额能购买最大价值的奖品,可以补充他们的精力和体力。
2024-03-12 16:47:07 516
原创 2419. prufer序列(prufer编码,模板题)
本题需要你实现prufer序列与无根树之间的相互转化。假设本题涉及的无根树共有 n 个节点,编号 1∼n。为了更加简单明了的描述无根树的结构,我们不妨在输入和输出时将该无根树描述为一个以 n 号节点为根的有根树。这样就可以设这棵无根树的为 f1,f2,…,fn−1,其中 fi 表示将该树看作以 n 号节点为根的有根树时,i 号节点的父节点编号。同时,设这棵无根树的为 p1,p2,…,pn−2。
2024-03-09 20:30:08 933
原创 2417. 指挥网络(朱刘算法,最小树形图)
以某一个点为根的有向树,被称为 树形图一个有向图,满足无环且每个点的入度为 1 (除了根节点),被称为 树形图。
2024-03-09 18:19:16 928
原创 371. 牧师约翰最忙碌的一天(tarjan,2-SAT)
牧师约翰在 9 月 1 日这天非常的忙碌。有 N 对情侣在这天准备结婚,每对情侣都预先计划好了婚礼举办的时间,其中第 i 对情侣的婚礼从时刻 Si 开始,到时刻 Ti 结束。婚礼有一个必须的仪式:站在牧师面前聆听上帝的祝福。这个仪式要么在婚礼开始时举行,要么在结束时举行。第 i 对情侣需要 Di 分钟完成这个仪式,即必须选择 Si∼Si+Di 或 Ti−Di∼Ti 两个时间段之一。
2024-03-08 20:42:09 821
原创 2402. 2-SAT 问题(tarjan,2-SAT模板题)
给定 n 个还未赋值的布尔变量 x1∼xn。现在有 m 个条件,每个条件的形式为 “xi 为 0/1xj 为 0/1 至少有一项成立”,例如 “x1 为 1 或 x3 为 0”、“x8 为 0 或 x4 为 0” 等。现在,请你对这 n 个布尔变量进行赋值(0 或 1),使得所有 m 个条件能够成立。
2024-03-08 18:08:12 460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人