- 博客(127)
- 收藏
- 关注

原创 快速傅里叶变换(FFT)略解
我们发现(2x+3)(4x+5)=8x2+22x+15...(∗)23×45=1035(2x+3)(4x+5)=8x^2+22x+15\quad...(*)\\23\times45=1035(2x+3)(4x+5)=8x2+22x+15...(∗)23×45=1035而如果我们把 (∗)(*)(∗) 式右边的每一位的系数看做一个数每位上的数码,正好得到了 103510351035。事实上,对...
2019-06-27 15:18:32
981

原创 模拟退火略解
模拟退火模拟退火 算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。模拟退火的出发点是基于物理中 固体物质的退火过程 与一般组合优化问题之间的相似性。固体物质的退火过程lz前天的市物理竞赛爆炸(被防AK了)……心情极度不爽听说oi同志们物理都很好 (翘物理竞赛辅导课) ,还是提一下这东西吧。根据牛顿冷却定律 (Newton’s ...
2019-04-15 10:47:15
930

原创 矩阵乘法略解
矩阵乘法对于一个 n×mn\times mn×m 的矩阵 AAA 和一个 m×km\times km×k 的矩阵 BBB,有且仅有一个 n×kn\times kn×k的矩阵 CCC 使 A×B=CA\times B=CA×B=C,且对于∀i∈[1,n]&∀j∈[1,k]\forall i\in [1,n] \& \forall j\in [1,k]∀i∈[1,n]...
2019-04-02 09:41:17
2201
1
原创 Python3 语法简明教程
本文是本人学习菜鸟教程的Python 3教程后,整理学习笔记而成。本文主要给本人查询语法之用,也可供有C/C++基础的其他读者参阅Python 3的语法。OI/ACM选手大多使用C++,大学生学习的第一种语言一般是C;本文主要针对这些读者编写。本文只包含Python 3的基本用法,大部分内容来自菜鸟教程,但未包含菜鸟教程的全部内容。如果有错误之处,敬请批评指正。
2023-09-19 09:40:43
742
原创 K-means 聚类算法学习笔记
类,使得损失函数最小。在本例中,样本点是指平面直角坐标系上的点,聚类中心也是平面直角坐标系上的点,而每个点的损失函数则是它到聚类中心的距离。是一种无监督学习算法,用来将。
2023-09-18 22:01:26
497
原创 Python3 语法(自用)
Python 中,分号可加可不加;但是如果一行中有多个语句,就必须加。这是为了避免当用户没有将python 装在默认的 /usr/bin 路径里,而找不到python解释器的问题。。
2023-09-06 17:07:20
215
原创 主成分分析笔记
个维度来说,方差越大,说明数据之间的差异越大,说明越能区分不同数据,说明此维度越重要,越应该被保留。可以用协方差刻画差异。对于同一行来说,两个列向量在此行的数值相差越大,就会使协方差越大。是指在尽量减少失真的前提下,将高维数据压缩成低微的方式。组数据分别应用此变换,这样就得到答案。减少失真是指最大化压缩后数据的方差。至此便直接给出计算方法。列)的矩阵,表示一共有。维的所有协方差写成一个。行,也就是所有数据的第。
2023-09-04 21:32:22
1141
1
原创 luogu P5560 [Celeste-B]Golden Feather
如果找到一个点跟这个点互素,那么就是1;否则,如果所有的点都不跟这个点互素,那么就不是1。是什么呢,注意到1号点跟他不互素,所以是3。,我们不难想到在原来的最小生成树上加一条边。这条边要么是1,要么不是1。怎么判断所有的点都不跟这个点互素。偶数的情况显然满足。带3的情况显然满足,剩下最后一种情况。最后一种情况下,不会了。变大1的时候,即加入一个新的点。求最小生成树的边权之和。,显然只有0,4满足要求。个点的完全无向图,边。
2022-10-27 20:51:44
441
原创 luogu P1629 邮递员送信
怎么转化成单源最短路径?显然 1 号是源,那么,将边正着建,跑一遍单源最短路径;再倒着建,跑一遍单源最短路径即可。考虑转化为单源最短路径问题,否则需要使用 dfs 等,容易超时。,从 1 号点到 2 号点再返回;到 3 号点再返回……求经过的所有边权值之和的最小值。这里选择 dijkstra。
2022-10-01 14:49:24
126
原创 Dijkstra算法略解
一种很显然的思路是,如果 a->b 的最短路径经过 c,那么 a->b 的最短路径一定是 a->c 的最短路径和 c->b 的最短路径。也就是说,我们可以先求出较为好求的节点的最短路径(c),再根据这些数据来计算其他节点的最短路径(b)。不难想到,1号点(a)到另一个不与 1 号点直接相连的点(b)的路径有很多条。显然是被 1 号点直接指向的节点。当我们求出 1 号点及其直接指向的节点的最短路径以后,我们就可以使用他们来计算其他节点的最短路径。条边的有向图,求从 1 号节点到每一个节点的最短路径长度。
2022-09-28 18:03:46
352
原创 P1880 [NOI1995] 石子合并
堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的。堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。对于这种环形问题,一种思路是断环成链,枚举断点需要。之间的石子的最小得分,不难想到,观察数据范围,不难想到动态规划。试设计出一个算法,计算出将。在一个圆形操场的四周摆放。堆的最小得分和最大得分。
2022-09-28 17:02:06
258
原创 luogu P1095 [NOIP2007 普及组] 守望者的逃离
s 的每秒,可以跑步(速度17 m/s)、闪烁(速度60m/s)也可以休息(速度0)。魔法,每休息 1s 回复 4 魔法。若不能,求最长能经过的距离。,直接枚举跑步的时间即可。
2022-09-28 11:03:21
129
原创 luogu P1941 [NOIP2014 提高组] 飞扬的小鸟
他能被 (i-1, j-x[i-1]) 更新,也能被 (i-1, j-x[i-2]) 更新……给出飞扬的小鸟的一个场景,判断小鸟是否能到达终点。否则,求最多能通过的水管数。优化这种 m×m 的更新方式为 “2m 型”。,所以 j-x[i-1], j-x[i-2], …被多次访问,造成时间浪费。个位置 j-x[i-1], j-x[i-2], …注意到算法处理上升时进行了大量冗余的更新,考虑优化它。跳跃到 (i, j) 的累计最小点击数。表示经过 (i, j) 的最少点击次数。考虑如何优化时间复杂度。
2022-09-26 11:49:55
265
原创 luogu P2340 [USACO03FALL]Cow Exhibition G
从中任选若干头奶牛,使得他们的智商之和、情商之和均不为负数,且智商与情商之和最大。即可,于是空间压缩为一维。头奶牛,且他们的智商之和为。本题卡常数,请开O2。
2022-09-21 11:31:41
152
原创 luogu P3842 [TJOI2007]线段
条线段,这些线段都与x轴平行且端点都在格点上,且都在(1,1)与(n,n)之间。计算从(1,1)出发到(n,n)结束并覆盖每一条线段的所有路径中,路程最短的路程。对于每条线段,只有两种状态:左侧进入右侧离开,右侧进入左侧离开。
2022-09-19 12:00:06
283
原创 并查集略解
下次我们访问3的时候,我们会先找到3指向的元素2,再找到2指向的元素1。因为不用支持分开集合的操作,所以为了防止每次都线性遍历一边这个“链”,我们可以合并链,让集合里的每个元素都直接指向这个集合的代表。下次我们访问2元素的时候,检索到2指向1,我们就能知道12属于同一个集合。,这个代表不会有指向另一个元素的边。现在我们合并1,2元素。不妨认为把2加入到1所属的集合中,我们连一条边。现在我们将3加入到1,2所属的集合中。我们有四个元素,初始状态下各自为一个集合。初始状态下,每个元素各自为一个集合。
2022-09-13 11:06:38
238
原创 luogu P2234 [HNOI2002]营业额统计
对于一个数列,定义每一项的最小波动值为该项前面的所有项中与该项之差的绝对值最小的差的绝对值。第一项的最小波动值为本身。求数列每一项的最小波动值之和。排序后,对于每项,分别往前和往后找第一个合法的项,选择最小的计入答案即可。
2022-09-11 19:43:47
214
原创 树状数组略解
显然朴素算法会超时。不妨想,优化时间复杂度的方法是用一个元素表示多个元素的信息。如果用二分思想,单次修改或查询的时间复杂度将会下降到。由构图方式可知,一个节点与父亲的距离=这个节点管辖的节点数。这样,我们就实现了树状数组的构建与维护。下面给出例题的代码。这种建树方式与 2 的若干次幂有关,不难想到观察编号的二进制表示。下面我们探究每次修改或查询时,从叶子节点到根节点的路径的节点的编号的规律。他能帮我们消去多余的1。(二进制意义下),但是最右边的1仍保留。是一种被用于解决区间问题的算法。复杂度的修改和查询。
2022-09-11 16:30:06
394
原创 csp202206
定义行动成功,它指的是拥有行动材料、行动材料类别和行动类别的控制权;定义角色、用户是否属于某一角色的依据,以及判断角色是否能行动成功的依据。仅有格点的平面上有若干与坐标轴成45°角的无端点理想薄平面镜,光线被反射后会衰减。回答若干询问,判断光线在规定时间内传播后的位置和剩余强度。给定一个01矩阵,保证矩阵里的1元素很少。给出若干01矩阵碎片,他们的左下角元素都是1,判断这些碎片是否来自这个矩阵。注意到反射水平不超过0.8,经计算最大光强的光至多经过30次左右的反射便失去强度。第一步,模拟,得到70分。
2022-09-01 21:13:37
346
原创 luogu P1016 [NOIP1999 提高组] 旅行家的预算
起点也有加油站,油箱初始为空。试问车是否能到达终点?若能,求最小加油总花费。尽量在油价低的地方加油,在不浪费的前提下尽量加满油。注意浮点数处理和每次的加油量计算的细节。个加油站,每个加油站位于距起点。的油箱,每单位油可以前进。外的终点,笔直的沿途有。...
2022-08-30 16:21:33
200
原创 luogu P2895 [USACO08FEB]Meteor Shower S
有一个矩形棋盘,某些格点在某时刻起不再能通行。从 (0,0)(0,0)(0,0) 开始以 1/s 的速度移动到一个永远安全的点,求最短时间。广度优先搜索即可。病历本:流星只能砸 300 以内,但人可以走 300 以外。...
2022-07-01 17:15:10
145
原创 luogu P1219 [USACO1.5]八皇后 Checker Challenge
在一个 n(6≤n≤13)n(6≤n≤13)n(6≤n≤13) 的正方形棋盘中放 nnn 个棋子,使得每行每列每对角线都只有一个棋子。朴素深度优先搜索即可。可以打表。
2022-07-01 16:35:46
124
原创 luogu P3743 kotori的设备
有 NNN 个理想设备,第 iii 个设备起始有 bib_ibi 电量,功率是 aia_iai。有一功率为 ppp 的理想充电线,无线电量。求依靠充电线和原有电量,同时运行所有设备的最大运行时间。二分答案,老生常谈,不再赘述。这个答案无法AC,需要将偏移量 改为 。...
2022-07-01 11:46:54
178
原创 luogu P1182 数列分段 Section II
将连续的 NNN 项正整数数列分成 kkk 段,使得每段的和的最大值最小。求这个值。二分枚举答案即可。病历本:做完以后自己多出几组数据再提交。
2022-06-30 14:43:49
142
原创 luogu P2440 木材加工
有正整数 n,kn,kn,k 和 nnn 段长度均为正整数的木材,将它们锯成 kkk 段长度相同的木头,求最大长度。二分答案即可。时间复杂度 O(nlog2L)O(n\log_2L)O(nlog2L)。病历本:二分的右端点。
2022-06-30 14:23:38
252
原创 luogu P1873 [COCI 2011/2012 #5] EKO / 砍树
有正整数 N,MN,MN,M 和 NNN 棵树,第 iii 棵树的高度为正整数 aia_iai。求一个最大的正整数 ansansans,使得所有树中高度超过 ansansans 的部分的高度之和不小于 MMM。一种显然的思路是,二分枚举 ansansans,再分别检验答案是否合理。为了检验便捷,需对 aia_iai 排序。时间复杂度 O(Nlog2N+log2M)O(N\log_2 N+\log_2 M)O(Nlog2N+log2M)。病历本:类型转换。如果不枚举从哪棵树开始锯,则时间复杂度变
2022-06-29 15:39:45
318
原创 luogu P1102 A-B 数对
给定正整数 N,CN,CN,C 和 NNN 个 整数,求任取两个数使得它们的差恰好为 CCC 的方案数是多少。先排序,然后使用双指针思路解决。病历本:类型转换。
2022-06-29 14:52:25
139
原创 luogu P4447 [AHOI2018初中组]分组
将 NNN 个整数分成若干组,使得每组的数都连续且不重复。求规模最小的组的规模的最大值。朴素思路显然,不再赘述。首先离散化数据,经过简单计算并找规律,发现应使得每组选出的数都尽量多。由此想到差分。...
2022-06-27 11:37:22
189
原创 luogu P1106 删数问题
从一个 NNN 位数里删去 kkk 个数码,使得剩下的数码组成的数最小。注意到 N≤250N≤250N≤250,不难想到贪心:每次删去一个数码,使得剩下的数最小。即:使删去 kkk 个数码后的数最小的数是删去 k−1k-1k−1 个数码以后的最小的数再删去一个数码得到。一种错误的思路:每次删去最大的数码。如果有相同数码,删去靠前的。反例:102,k=1102, k=1102,k=1。......
2022-06-26 10:26:13
167
原创 luogu P1990 覆盖墙壁
有两种地砖,每种无限个。用它们将 2*N 的地板填满,求方案数的后四位。搜索代码不难打出。将前 10 项列出后不难发现规律。当然,动态规划也可。用类似搜索的方法记录状态,但是常数更大。...
2022-06-25 17:04:54
215
原创 康托展开与逆康托展开
康托展开 和 逆康托展开 与排列与排名密切相关。康托展开康托展开 被用来求一个排列的排名,时间复杂度 O(nlogn)O(n\log n)O(nlogn)。假设我们要求排列 n=5,a[]={3,4,1,5,2}n=5,a[]=\{3,4,1,5,2\}n=5,a[]={3,4,1,5,2} 的排名。定义 s[i]s[i]s[i] 表示在 a[i]a[i]a[i] 后面的数中,有多少个比...
2019-11-08 11:08:26
277
原创 简单博弈论之阶梯 Nim 游戏
第一篇博弈论博弈论我们把动物利用大自然移动的瘾魂,在决策人期待的空间里,形成三维均衡的语文学理论,称为 博弈论。博弈论是二人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜的目的。阶梯 Nim 游戏例 1 矿物运输已知,矿坑与矿坑之间形成了有向的树形结构,即除 0 号矿坑以外每个矿坑都有与其相连的父亲矿坑。Jim总共开采了 nnn 个矿坑并将其从0到 n−1n-1n−1 编...
2019-11-08 09:37:43
568
原创 扫描线略解
问题引入求 nnn 个矩形的面积并。1≤n≤1051\leq n\leq 10^51≤n≤105。离散化坐标首先,通过离散化,可以让矩形的坐标从 10910^9109 级别降至 10510^5105 级别。尽管如此,开一个 N2N^2N2 的二维数组来存储坐标系里的每个点,仍然还会导致空间超限。扫描线本章节中,部分图片来自这里。看到图中的虚线了吗?想想有一条平行于 y 轴的直线从...
2019-11-03 16:05:29
357
原创 可持久化数据结构学习笔记
文章目录1 可持久化线段树1.1 问题引入1.2 权值线段树1 可持久化线段树1.1 问题引入您需要写一个数据结构,维护一个数列 a[1...N]a[1...N]a[1...N],支持以下操作:输入 l r k(l≤r,k≤r−l+1l\leq r,k\leq r-l+1l≤r,k≤r−l+1),求 a[l...r]a[l...r]a[l...r] 中第 kkk 大的数。这就是经典的 ...
2019-11-01 15:28:59
249
原创 分块
分块由于我在网上找不到定义,只好编一个。分块 是一种将问题分解成若干个子问题,逐项解决子问题后得到原问题答案的思想。块考虑这样一个问题。你有一个序列 a[1...N]a[1...N]a[1...N],你需要写一个数据结构维护它,支持以下操作:修改 a[x]a[x]a[x] 的值;查询 a[L...R]a[L...R]a[L...R] 的最大值、和、按位与和、或和、异或和、与非和、或...
2019-10-24 14:41:19
282
原创 基环树略解
基环树基环树,也叫 环套树,是一种图的类型。如果连通图 G={V,E}G=\{V,E\}G={V,E} 有 ∣V∣=∣E∣|V|=|E|∣V∣=∣E∣,则我们称它是 基环树。顾名思义,基环树就好似是在一棵树上加一条边得到的图。基环树有且仅有一个环,所以也被成为环套树。如上图所示的图就是一棵基环树。用途基环树没什么用。它只能解决部分特殊问题,而这类问题通常会注明“边数=点数”,解法也...
2019-10-23 14:38:14
393
原创 [NOIp2018] luogu P5022 旅行
题目描述有一棵基环树 TTT,你初始在一个点上。每次可以从下列选项中选择一项执行:沿着一条边走到一个没有访问过的点;沿着一条边返回一个访问过的点。你需要依此法访问所有的 NNN 个点。每个点被首次访问的顺序形成了一个序列,求这个序列字典序最小的那个。Solution由数据规模知,这大概是一个时间复杂度 O(N2)O(N^2)O(N2) 的程序。先考虑树的情况。对于一个节点 kk...
2019-10-23 11:04:03
281
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人