学习笔记
文章平均质量分 90
懵哥很懵
间歇性学习&&整天玩耍的蒟蒻OIer&&ACMer
展开
-
GYM102979 2020-2021 Winter Petrozavodsk Camp, Day 9 Contest (XXI Open Cup, Grand Prix of Suwon) 补题记录
10.17 更:尚未完全完工,CE 两题题解明天补全。B Best Meeting Places题意:给定一棵 nnn 个节点的树,树上有边权。现共要开 nnn 场会议,第 iii 场与会人员分布在 111 到第 iii 个节点。考虑设立 xxx 个分会场,每个与会人员只需要到其中一个分会场即可。每个人的代价是他走到一个分会场的路径上边权的最大值,这次会议的代价是每个人代价的最大值。对于每场会议,求出当设立分会场个数是 [1,k][1,k][1,k] 时代价的和。1≤k≤n≤3×1051 \le k \原创 2023-10-17 23:20:01 · 532 阅读 · 0 评论 -
2023 年牛客多校第六场题解
A Tree题意:给定 nnn 个点的一棵边带权的树,点有黑白二色(0,10,10,1 表示),现在可以以 aia_iai 的价值翻转第 iii 个点的颜色,一对异色点 (u,v)(u,v)(u,v) 的价值为树上路径的最大边权值。问经过任意颜色翻转后,价值减去代价的最大值。1≤n≤3×1031 \le n \le 3\times 10^31≤n≤3×103,1≤ai≤1091 \le a_i \le 10^91≤ai≤109。解法:注意到点对的价值等于路径上最大边权值,不难想到 Kruskal 重原创 2023-08-05 04:47:18 · 595 阅读 · 0 评论 -
2023 年牛客多校第五场题解
A Jujubesister题意:给定长度为 nnn 的数列 {a}i=1n\{a\}_{i=1}^n{a}i=1n,qqq 次询问区间 [l,r][l,r][l,r] 上满足 ai=ak>aja_i=a_k>a_jai=ak>aj 且满足 l≤i<j<k≤rl \le i <j<k \le rl≤i<j<k≤r 的三元组 (i,j,k)(i,j,k)(i,j,k) 数目。1≤n,q≤5×1051 \le n,q \le 5\times 10^原创 2023-08-04 20:07:35 · 518 阅读 · 0 评论 -
2023 年牛客多校第四场题解
A Bobo String Construction题意:给定一个 010101 字符串 ttt,构造一个长度为 nnn 的 010101 串 sss,使得 ttt 在 concat(t,s,t){\rm concat}(t, s, t)concat(t,s,t) 中仅出现两次。多测,1≤T≤1031 \le T \le 10^31≤T≤103,1≤n,∣t∣≤1031 \le n,|t| \le 10^31≤n,∣t∣≤103。解法:结论是全 000 或全 111 串一定可行。首先如果 ttt 就是原创 2023-07-29 11:39:51 · 1329 阅读 · 1 评论 -
2023 年牛客多校第一场题解(上)
A Almost Correct题意:给定长度为 nnn 的 010101 串 sss,构造一个排序网络,使得能够将除 sss 之外的任意 010101 序列正确排序,且 sss 无法被正确排序。TTT 组测试,1≤T≤1041 \le T \le 10^41≤T≤104,2≤n≤162 \le n \le 162≤n≤16。解法:记 010101 串 sss 中 000 所在位置的下标集合为 S0S_0S0,111 所在位置的下标集合为 S1S_1S1(下标从 111 开始)。令 S0S_0S0原创 2023-07-25 22:11:27 · 583 阅读 · 1 评论 -
常用数据处理方法
常用python数据处理方法原创 2023-01-12 16:12:00 · 555 阅读 · 2 评论 -
2022 年杭电多校第八场补题记录
2022 年杭电多校第八场补题记录原创 2022-08-12 23:34:53 · 829 阅读 · 3 评论 -
2022 年杭电多校第七场补题记录
2022 年杭电多校第七场补题记录原创 2022-08-11 02:47:15 · 1314 阅读 · 5 评论 -
2022 年牛客多校第七场补题记录
2022 年牛客多校第七场补题记录原创 2022-08-11 01:44:13 · 961 阅读 · 0 评论 -
2022 年牛客多校第六场补题记录
2022 年牛客多校第六场补题记录原创 2022-08-08 00:22:08 · 5967 阅读 · 2 评论 -
2022 年杭电多校第六场补题记录
2022 年杭电多校第六场补题记录原创 2022-08-06 01:09:01 · 3408 阅读 · 5 评论 -
2022 年杭电多校第五场补题记录
2022 年杭电多校第五场补题记录原创 2022-08-03 23:34:39 · 1757 阅读 · 3 评论 -
2022 年牛客多校第五场补题记录
2022 年牛客多校第五场补题记录原创 2022-08-02 01:00:21 · 404 阅读 · 1 评论 -
2022 年牛客多校第四场补题记录
2022 年牛客多校第四场补题记录原创 2022-07-31 17:11:50 · 5572 阅读 · 0 评论 -
2022年杭电多校第四场补题记录
2022年杭电多校第四场补题记录原创 2022-07-30 01:18:49 · 1139 阅读 · 6 评论 -
2022年牛客多校第三场补题记录
2022年牛客多校第三场补题记录原创 2022-07-27 17:35:56 · 1855 阅读 · 0 评论 -
2022 年杭电多校第三场补题记录
2022 年杭电多校第三场补题记录原创 2022-07-27 16:03:18 · 836 阅读 · 3 评论 -
2022 年牛客多校第一场补题记录
2022 年牛客多校第一场补题记录原创 2022-07-24 22:26:47 · 568 阅读 · 0 评论 -
2022 年牛客多校第二场补题记录
2022 年牛客多校第二场补题记录原创 2022-07-24 14:33:21 · 912 阅读 · 3 评论 -
2021ICPC网络赛第二场 I 题
(今天上数论课的时候,正好讲到了这个题,因而记录一下)题意:给定域 Fp{\Bbb F}_pFp,求 Fp{\Bbb F}_pFp 的扩域 F{\Bbb F}F 上 nnn 次首一不可约多项式的个数。n,p≤2×103n,p \leq 2\times 10^3n,p≤2×103。解法:首先有一个结论——xpn−xx^{p^n}-xxpn−x 是所有次数为 ddd 次不可约多项式的乘积,其中 d∣nd|nd∣n,且每个不可约因子恰好仅存在一次(没有重因式)。并且,任意 d∤nd \nmid nd∤n原创 2022-04-22 15:28:56 · 975 阅读 · 0 评论 -
Namomo Summer Camp 2021 第一天专题讲解
Subset题意:给出 nnn 个数,要求求出两个不相交的子集,使得他们的和一样。 n≤1×105n \leq 1\times 10^5n≤1×105,ai≤1×105a_i \leq 1\times 10^5ai≤1×105。解法:此题在 Atcoder 上出过一个类似题。考虑前 nnn 个元素构成的子集数目,有 2n2^n2n 种子集,而前 nnn 个元素至多能构成的本质不同的数字只有 nmax{ai}≤n×1×105n\max\{a_i\} \leq n\times 1\times 10^5n原创 2021-08-21 01:22:23 · 1127 阅读 · 0 评论 -
数论学习笔记
质数总体来说,质数有无穷多个。其分布存在一定规律。limn→∞π(n)=nlogn\displaystyle \lim_{n \to \infty}\pi(n)=\frac{n}{\log n}n→∞limπ(n)=lognn。其中,π(n)\pi(n)π(n) 为 nnn 以内的质数个数。第 nnn 个质数 pn=O(nlogn)p_n=O(n \log n)pn=O(nlogn)∑i=1n1i=O(logn)\displaystyle \sum_{i=1}^{n} \frac{1原创 2021-07-23 22:05:43 · 352 阅读 · 0 评论 -
Polya 定理学习笔记
在讲解 Burnside 引理之前,先要引入置换和群的概念。置换什么是置换?严格意义上定义,置换可以被认为是一个从自身映射到自身的双射函数。在组合数学中,通常指从 [1,n][1,n][1,n] 映射到 [1,n][1,n][1,n] 的双射函数。通俗的来说,就是将 1−n1-n1−n 重新用 1−n1-n1−n 的一个排列重新赋值。通常可以用以下的方式来表示一个置换:(1234531254) \begin{pmatrix} 1 & 2 & 3 &原创 2021-07-21 12:18:06 · 584 阅读 · 0 评论 -
树形数据结构5——可持久化线段树(主席树)
本文同时也是可持久化数据结构的第一篇。在探讨可持久化数据结构之前,先来考虑一类问题:许多的app(应该是几乎所有),都有一个功能——撤销,回到一个历史版本,然后重新操作。那这是怎么实现的呢?我们把这个问题抽象一下,先考虑最简单的问题:给定一个数列,现在进行单点修改,每次修改都会产生一个历史版本。我们要能自由的访问任意一个历史版本并且在这个版本上进行修改,怎么办?一个朴素的思想:逐一维护。一个数列是吧?那就一个数组存;改一个数产生一个版本?那就每一个版本都存下来!每产生一个版本就存储一个新序列。这样原创 2021-02-10 23:07:57 · 360 阅读 · 0 评论 -
线性代数学习笔记3——矩阵的基本运算
在前面两节我们关注于矩阵与线性方程组的联系。在本节将关注于矩阵本身。先从简单的运算开始。矩阵的和与数乘——线性运算这俩基本对于所有的结构都能进行,矩阵也不例外。但是,矩阵的加必须是与同型矩阵进行的。同型矩阵,即两个行数目相同且列数目相同的矩阵。对于同型的n×mn \times mn×m矩阵(nnn行mmm列)A,BA,BA,B:A=[a1,1a1,2a1,3⋯a1,ma2,1a2,2a2,3⋯a2,m⋮⋮⋮⋱⋮an,1an,2an,3⋯an,m],B=[b1,1b1,2b1,3⋯b1,mb2,1b原创 2021-02-05 00:14:06 · 359 阅读 · 0 评论 -
线性代数学习笔记2——高斯-若尔当消元
上一节我们提到了矩阵和线性方程组的关系,那么这一节主要探讨如何用矩阵去解线性方程组。首先介绍阶梯型矩阵:一个矩阵称为阶梯型矩阵,需要以下三个条件:1.每个非零行都在每一零行上。2.某一行的先导元素所在列下放元素都是零。3.某一先导元素所在列下放元素都是零。(和看天书差不多)我们用图形来表示它。一个阶梯型矩阵形如下面的形式:[#∗∗⋯∗0#∗⋯∗00#⋯∗⋮⋮⋮⋱⋮000⋯#] \begin{bmatrix} \# & * & * & \原创 2021-01-31 21:58:01 · 2797 阅读 · 0 评论 -
线性代数学习笔记4——矩阵的逆
在进行矩阵的运算的时候,我们会发现我们没有定义矩阵的除法,但是经常又需要做类似的操作,因而我们引入矩阵的逆的概念,用以填补这个空白。矩阵的逆由于我们在定义矩阵运算的时候只定义了数乘和矩阵乘法,而没有除法运算。和逆元的产生一样,我们为了定义出除法,我们采用乘一个数/矩阵得到单位1/单位矩阵的方法,并定义这个数/矩阵为原数/原矩阵的乘法。注:单位矩阵是一个除了主对角线为1,其他全为0的方阵。由于阶数不固定,因而有无穷多种单位矩阵。[100010001] \begin{bmatrix} 1 & 0原创 2021-01-30 17:17:16 · 2429 阅读 · 0 评论 -
线性代数学习笔记1——线性方程组与矩阵
(吐槽很多线代教科书上来先讲行列式,个人感觉应该先讲矩阵较为合理)在谈矩阵之前,先来谈一个从小学就开始研究的东西——线性方程组。什么是线性方程?它是形如a1x1+a2x2+……+anxn=ba_1x_1+a_2x_2+……+a_nx_n=ba1x1+a2x2+……+anxn=b的方程,其中aia_iai与bbb可以为实数或复数,nnn为正整数,代表未知数个数。而线性方程组,就是一个或几个包含相同变量x1,x2,……,xnx_1,x_2,……,x_nx1,x2,……,xn的线性方原创 2021-01-30 17:13:32 · 1773 阅读 · 0 评论 -
字符串学习笔记2——后缀数组SA及其排序
上次我们讲到了前缀数组,那后缀数组又是什么呢?首先定义后缀:对于一个字符串sss,定义后缀iii为从第iii位开始一直到字符串末尾的子串。举个例子:对于字符串ababa\tt ababaababa(这个例子要在后文反复出现的),它的后缀iii依次如下:后缀1 ababa\tt ababaababa后缀2 baba\tt babababa后缀3 aba\tt abaaba后缀4 ba\tt baba后缀5 a\tt aa这个概念非常重要。接下来,我们就要引出这篇文章的主角:RKRKRK数组原创 2021-01-27 11:53:23 · 583 阅读 · 1 评论 -
字符串学习笔记1——前缀数组与KMP算法
(之前学KMP的时候就一直没学会,其间找了很多资料也没学会,直到现在过去两年多了才真正学会,因而写篇文章记录一下)在涉及KMP算法之前,先来看一个东西——前缀数组。什么是前缀数组?就是一个和字符串等长的数组,里边记录了s[0,1,……,i]s[0,1,……,i]s[0,1,……,i]中最大真前缀等于真后缀的长度,用π(i)\pi(i)π(i)表示。用严格的数学公式定义,就是:π(i)=max0≤k≤i{s[0,1,……,k−1]=s[i−(k−1),……,i]}\pi(i)=\displaystyl原创 2021-01-27 10:19:39 · 906 阅读 · 0 评论 -
树形数据结构学习笔记3——BST(二叉查找树)
在上文中我们提到了一种和二叉堆长的很像的数据结构——BST。本文就来讲述这种数据结构。先看图:这很明显还是一棵树。每个节点至多两个儿子,节点维护一些信息。和二叉堆不同的是,BST中父节点和子节点的关系是左儿子<父节点<右节点,而且更一般的,右子树中元素都大于根,左子树中元素都小于根。而这正是它可以进行搜索的依据。注意:我这里没有提及相等元素的情况。对于相等形况,通常是挂靠在同一节点,在节点中新增一个信息:该元素出现的次数。因而下文不再涉及相等情况,如若相等直接停止,元素出现次数+1。原创 2021-01-26 00:19:00 · 371 阅读 · 0 评论 -
树形数据结构学习笔记2——堆与二叉堆
本文作为堆的基础,只涉及最基础的二叉堆。同时为了行文方便,约定本文中的堆都是大根堆。什么是堆?就是将尽可能大的元素往上放的一种数据结构。(注意与下一篇:二叉搜索树(BST)区分开)这是二叉堆。而这是下篇文章要讲的BST。(它们俩差别还是挺大的)。而二叉堆,就是每个父节点下面至多有两个子节点的一种堆。细心的应该有人发现了:堆的左右儿子好像没有明显大小关系。左儿子可以大于右儿子,也可以小于。而且左子树内的元素大小也和另一个子树完全没有关系。也就是说,二叉堆中只有根节点最大这么一条限制,下面的想怎原创 2021-01-25 00:00:56 · 436 阅读 · 0 评论 -
树形数据结构学习笔记1——线段树与树状数组
在谈树形数据结构之前,先考虑一类问题:现在要维护一个数列,我需要进行单点或者区间的修改(区间[l,r][l,r][l,r]上都要执行同一个操作),要进行区间的求值,例如求单点或区间和、求单点或区间最大值最小值等等。这里引出了一个问题,那就是操作的范围,通常有以下两种:单点与区间的修改与求值。而这个直接关系到使用哪一种数据结构的问题,这一问题将在附记3中详解,这里先粗略给一个结论:只存在单点的修改或求值的,可以使用树状数组;既存在区间修改又存在区间求值的,使用线段树此外,还有另外一个问题关于数据结构的存原创 2021-01-24 23:48:40 · 376 阅读 · 0 评论