自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(168)
  • 收藏
  • 关注

原创 虚树学习笔记

对于一些在树上进行某些询问的查询,且每个询问实际用到的点并不多的时候,可以考虑建虚树来查询。虚树的建立复杂度是Omlogn的,m是虚树节点数量,n是原树节点数量。也有方法可以做到Omlogm。

2024-05-11 21:50:56 904

原创 线段树优化建图学习笔记

对于存在一些单点连向区间或区间连向单点的边,且直接暴力连边会爆炸的题目,就可以考虑使用线段树优化建图。边数量的规模将会是nlogna。

2024-05-11 21:50:09 1081

原创 题解:AT_abc298_h [ABC298Ex] Sum of Min of Length

种情况,钦定 $dep_R \ge dep_L $。前面两项是定值,而后面一项选择的分界点一定是在。为根的子树中的所有点的贡献都是。种情况,用换根 DP 求一个。为根的子树中所有点的贡献都为。的任何一个不在路径上的儿子。为根时所有点的深度和就行。为根的子树中所有点都是离。中也有这个,但每一个不在。为根时所有点的深度和,为根的子树中所有点到。

2024-05-11 21:49:25 932

原创 CF1899G Unusual Entertainment 题解

的询问,去合并之后的 set 中二分查找即可。树上启发式合并的话套版子就行了,只是多加了一个更新询问答案的过程而已。为根的子树中是否有一个以上的节点,满足。则问题转化为:对于每组。但该模板题难度评级显然有问题。

2024-03-08 22:25:45 887

原创 CF1915G Bicycles 题解

参照去年普及组 T4,很显然能发现就是一个暴力最短路。这个点可以买下一辆自行车,所以是之后的。

2024-03-08 22:23:38 923

原创 AT_abc343_f [ABC343F] Second Largest Query 题解

求次大值的出现次数,乱搞就行了。因为带修,带修莫队或者分块有些麻烦。在维护区间最大、次大值的时候,直接同时维护一下它们对应的出现次数,然后就是一个区间和的问题。对于求次大值,用线段树维护就行了。记录下每个区间的最大、次大值。则两个子区间的父区间的最大值就是这四个最大的,次大值就是这四个次大的。

2024-03-08 22:22:26 422

原创 P8844 [传智杯 #4 初赛] 小卡与落叶 题解

求这玩意直接树上启发式合并。记录答案的时候用值域分块求一下和就行。也就是说这个询问的内容变成了:在。个询问时树的颜色情况就是由前。为根的子树中,深度不小于。的时候就可以考虑乱搞了。

2024-03-08 22:21:16 824

原创 AT_abc335_f [ABC335F] Hop Sugoroku 题解

比 E 简单。

2024-03-08 22:20:31 931

原创 CF1800F Dasha and Nightmares 题解

这样会使你答案大很多。对于每次桶的清空,如果直接枚举所有状态复杂度会高不止一点。发现我们放桶里面的二进制值最多有。中所有字符出现次数的奇偶情况。把这玩意看成二进制拿个桶记录答案就行了。个字符在里面出现过,故考虑枚举唯一没出现过的字符。个,所以随便拿个东西存一下往那些桶放了值即可。注意到第二个条件是必须要有。之外预处理,因为可能有。注:桶里的东西不能在。

2024-03-08 22:19:48 872

原创 CF1905D Cyclic MEX 题解

这个变化量用线段树乱搞就行了,相当于是区间赋值。在线段树上二分,统计一下最大值和最小值即可。右移若干次很显然可以破环成链,然后。考虑相邻两种状态的变化量。第一项和最后一项很显然,就是。

2024-03-08 22:15:17 920

原创 P9989 [Ynoi Easy Round 2023] TEST_69 题解

在统一下传的过程中打标记,如果当前节点的某个儿子所在子树中没有需要下传懒标记的节点,则不更新那个儿子的内容。再打个标记,记录某个区间元素是否均为。统计节点懒标记,在每次询问之前统一下传。,所以直接维护区间最小公倍数,对于。,如果这个区间中元素均为。,复杂度从视数据而定降到。的区间,暴力维护即可。是上一次询问的位置。,则不对其懒标记更新。

2024-03-08 22:14:35 971

原创 P8058 [BalkanOI2003] Farey 序列 题解

表示 Farey 序列中。不难发现,第二个求和等价于。的值,暴力枚举即可。

2024-03-08 22:13:49 854

原创 AT_abc343_G [ABC343G] Compress Strings 题解

包含也可以暴力哈希。这两个预处理出来之后跑状压就行了。,考虑从状压的角度入手。注:P2322 是这题的输出方案版。时,上面的 DP 得到的答案是。可能是因为很多人卡 E 了。,实测删掉被包含的之后飞快。完全包含了,就相当于是。的前缀的最大匹配长度。

2024-03-08 22:12:47 870

原创 P5655 基础数论函数练习题 题解

的倍数,直接退出循环即可。在正常卡常的基础上加上这个就能过了。在不取模的情况下会爆 __int128,所以不能这么搞。取模,保证乘积不会爆 longlong。在暴力求乘积的时候,如果当前的乘积是。删除不好搞,用回滚即可。的时候,我们就可以将其对。

2024-03-08 22:12:18 937

原创 P10149 [Ynoi1999] XM66F 题解

其实就是找到当前区间的区间和在减掉多出算的。时,这个新下标对答案的贡献分两种情况。相邻从下标的间隔中产生的贡献是。相邻从下标的间隔中产生的贡献是。很简单,考虑前缀和优化。第二种情况同理,可以自己推一下。然后就是把上面的情况在莫队里。橙色部分是前缀和,需要保留。其中绿色部分是产生的贡献,,当其加入一个新的下标。

2024-03-08 22:10:58 831

原创 AT_abc259_f [ABC259F] Select Edges 题解

为根,从叶子节点往上推。注意到,任意一个除根节点外的节点,其与其父节点都必有一条连边。注:为什么我们的最初价值可以是上面的那个和呢?因为我们的最初价值就相当于不取节点。我们求出所有的增加量,从大到小排序后,使用前。为增加量的数量)个增加量,当做修改值对。,所以我们还要看一下是不是利于求最大值的。的连边边权),那么我们一定是把原来的。的任意连边的最大价值,而。与其父节点的连边时,以。为根所得子树的最大价值。与其父节点的连边时,以。为根所得子树的最大价值。这样,我们在往上推的时候,的最初价值,一定是在。

2023-07-08 18:18:26 208

原创 AT_abc246_g [ABC246G] Game on Tree 3 题解

对于小 A 的最优策略,那就一定是在小 B 每次行动前将一个以小 B 所在节点为根的(子)树中一个权值不小于。因为我们要求小 B 能够得到的最大分数的最小值,所以可以二分答案。对于每一次二分的答案。开始走),按照双方最优策略小 B 能够达到的权值不小于。是不计小 A 在这次移动前的操作时,能得到的值)。,则表示在最优情况下,小 B 是一定能得到至少。为根的(子)树中(从节点。

2023-07-08 18:17:52 130

原创 AT_abc246_g [ABC246G] Game on Tree 3 题解

对于小 A 的最优策略,那就一定是在小 B 每次行动前将一个以小 B 所在节点为根的(子)树中一个权值不小于。因为我们要求小 B 能够得到的最大分数的最小值,所以可以二分答案。对于每一次二分的答案。开始走),按照双方最优策略小 B 能够达到的权值不小于。是不计小 A 在这次移动前的操作时,能得到的值)。,则表示在最优情况下,小 B 是一定能得到至少。为根的(子)树中(从节点。

2023-07-08 18:15:51 113

原创 Codeforces Round 859 (Div. 4) 题解

我们不难发现,若这个字符串满足要求,则修改时的同一字母的位置在字符串中下标的奇偶性一定是相同的,否则一定不行。读过小学的应该都会做找寨品的题吧,就是在一堆东西里找重量不同的那个。,每次操作选取当前序列的某个子序列,将这个子序列的每一位的值加起来,并将最后的值加入序列,使序列的长度加。注意这道题中,每一堆石头的重量可能不同,所以我们可以考虑前缀和。克,那么区间内的石头总数一定是等于测评姬返回的重量和的。然后,注意我们每次是将序列的子序列的值加入序列,所以在将。的值之和的,所以在不满足判断时,也是不可能的。

2023-03-24 22:05:45 193

原创 Codeforces Round #834 [CF1759] A-D 题解

最后,如果如果怎么调整都无法满足条件,则答案为。(不会打分数线),然后乘以原来的那个数即可。其作用就是在某个字符串中寻找其子串。那么,我们只需要判断一下是不是。个字符串,请判定这些字符串是否分别是。现在去掉的一些数,变成了。中出现,所以这个排列最小的总和为。, 我们无法得到一个末尾有两个。众所不一定周知,有个函数,叫做。需要的最少操作数,若不能到。对于每组输入,有五个整数。, 则输出其中最大的一个。对于每组输入,第一行是。行,每行包含两个整数。对于每组数据,输出末尾。,所以某个数字有多少个。

2022-12-13 16:52:28 519

原创 AT_joi2020_yo1c a~c题解

我们枚举数组,找出每一个升序排列的元素个数,在求一个最大值即可。是在区间外左侧还是区间外右侧或者是。的连续部分列中升序排列的最长长度。的正整数列,求正整数列。

2022-12-09 13:07:47 568

原创 AT_pakencamp_2021_day2 a~c 题解

一行,输出。我们直接用或者输出就可以啦,还要记得换行哦。B题(AT_pakencamp_2021_day2_b Pasokon Power )思路我们用 pow 函数,表示 x 的 y 次方,再乘 b,最后输出即可。C题(AT_pakencamp_2021_day2_c Participants 3 )题目翻译小 A 举办了长达 2 天的比赛。其中第一天有 N 人参加,第二天有 M 人参加。所有参赛者都有属于自己的 ID 号,且所有的 ID

2022-12-08 09:43:33 459

原创 算法提高 第一课——快速幂

快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。

2022-11-07 16:14:00 178

原创 基础算法 第七课——归并排序

从字面上分析,排序就是排序,归并就是归并。它们结合起来,就可以理解为用归并的方法来进行排序。归并:还是从字面上分析,归就想成是回归,并就想成是合并。为什么要合并呢?那肯定是已经分散的数据要合起来啊。那么,就很好理解了:归并就是将某些分散的数据合并起来。知道归并的意思,就能够理解归并排序的意思了:先将一组无序的序列分散至独立的个体,再将已有序的子序列合并,得到完全有序的序列。

2022-11-04 20:37:48 383 1

原创 基础算法 第六课——快速排序(回顾)

首先设定一个分界值,通过该分界值将数组分成左右两部分。将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理。

2022-11-03 18:24:46 493 7

原创 2022CSP-J 题解[完整版]

小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 a^b的值是多少即 b 个 a 相乘的值,例如 2^3 即为 3 个 2 相乘,结果为8。“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为 2^{31} - 12 31 −

2022-11-01 13:24:06 5775 2

原创 基础算法 第五课——链表结构

顺序存储结构在(子)程序的说明部分就必须加以说明,以便分配固定大小的存储单元,直到(子) 程序结束,才释放空间。因此,这种存储方式又称为静态存储,所定义的变量称为静态变量。它的优缺点如下:优点:可以通过一个简单的公式随机存取表中的任一元素,逻辑关系上相邻的两个元素在物理位置上也是相邻的,且很容易找到前趋与后继元素。缺点:在线性表的长度不确定时,必须分配最大存储空间,使存储空间得不到充分利用,浪费了宝贵的存储资源;线性表的容量一经定义就难以扩充;在插入和删除线性表的元素时

2022-09-24 23:45:27 625 3

原创 基础算法 第四课——指针的认识与其运用

C++语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,而指针便是保存这个地址的变量。也就是说:指针是一种保存变量地址的变量。前面已经提到内存其实就是一组有序字节组成的数组,数组中,每个字节大小固定,都是 8bit。对这些连续的字节从 0 开始进行编号,每个字节都有唯一的一个编号,这个编号就是内存地址。

2022-09-23 20:48:20 468

转载 SPFA算法讲解 [转载]+[摸鱼]+[例题]

SPFA求最短路 [摸鱼][摸鱼][摸鱼]

2022-09-23 16:57:18 190

原创 基础算法 第三课——搜索与回溯

搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。

2022-09-21 16:50:19 129

原创 P1116 车厢重组

QAQ

2022-09-20 20:18:46 82

原创 洛谷 P1083 [NOIP2012 提高组] 借教室

二分+前缀和+差分

2022-09-19 19:23:40 190

原创 基础算法 第二课——背包问题 [动态规划]

0/1背包问题1.状态函数2.答案3.递推起点和边界4、状态转移方程(递推关系)法一:二维数组(从前往后推)法二:一维滚动数组(从前往后推)完全背包法一:二维数组(从前往后推)法二:一维滚动数组(从前往后推)多重背包法一:视为多次0/1背包(一维滚动数组从后往前推)法二:多件物品看成一个整体(一维滚动数组从后往前推)法三:二进制方法拆分为多件物品的组合(即成为了0/1背包)混合背包

2022-09-19 17:03:42 339

原创 基础算法 第一课——高精度算法详解

高精度算法,是一种处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几百亿的大数字。一般的,这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘等运算。对于非常庞大的数字无法在计算机中正常存储。于是,将这个数字拆开成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称为是高精度数。

2022-09-17 18:24:10 1454 4

原创 CF 111B Petya and Divisors

CF111B

2022-09-16 21:21:28 257

原创 [我的题单]

每日一练

2022-09-16 21:08:02 123

原创 CF181A Series of Crimes

CF181A

2022-09-14 19:34:45 203

原创 CF127B Canvas Frames

CF127B

2022-09-14 19:13:00 89

原创 CF152C Pocket Book

CF152C

2022-09-14 18:01:50 158

转载 KMP 算法详解

KMP 算法详解

2022-09-10 17:47:23 231

小蝌蚪找妈妈(c++)

小蝌蚪找妈妈(c++)

2022-08-19

猜数字小游戏双人版······

额·········

2022-08-13

猜数字小游戏 ······· ·······

额······

2022-08-13

双人坦克大战(一点也不像坦克)

这是一款双人游戏(我也没玩过) 是同学送的(不知道他从哪里弄来的) 他说很好玩······ (我觉得一般)

2022-08-13

猜年龄小游戏2(添加出生日期)

又双叒叕是猜年龄游戏······ 此次添加了出生日期,即年月日~~~~ 当然还是使用的二分(我太蒻了)······ 虽然不太美观,但还是有着99.09%的正确率的!(剩的那0.91%是猜的,因为不能保证正确性,但是我的生日样例是过了的······)

2022-08-12

一个简简单单的猜年龄游戏

#include<bits/stdc++.h> using namespace std; int main() { 这是一个······ 是一个······ 一个······ 个······ ······ 好吧······我也形容不出来······ 反正就是一个很简单的猜年龄游戏,用二分做的(做了好久好久好久)······ (很便宜的······) ······ ······ ······ return 0; }

2022-08-12

一个简简单单的猜年龄游戏

#include<bits/stdc++.h> using namespace std; int main() { 这是一个······ 是一个······ 一个······ 个······ ······ 好吧······我也形容不出来······ 反正就是一个很简单的猜年龄游戏,用二分做的(做了好久好久好久)······ (很便宜的······) ······ ······ ······ return 0; }

2022-08-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除