- 博客(31)
- 收藏
- 关注
原创 向量和矩阵学习笔记
首先,因为我刚刚学到高中的向量,对向量的看法呢就是一条有长度和方向的线,不过这在数学上的定义其实是不对,甚至跟我看的差别其实有点大,真正的定义就是数域FFF中的nnn个数a1a2a3ana1a2a3an组成的有序数组称为数域FFF上的nnn维向量。那么向量在这里具体表示的是什么呢?一般来说,向量一般就是指一些有关系的数组成的数组,但是也不绝对。Ps:数域就是类似于函数的定义域或者说是值域,一般来说FFF常指实数域RRR或者是复数域C。
2024-09-01 16:16:10 1501
原创 Tarjan学习笔记
他的子孙再也没有指向他的祖先的边,却有指向他自己的边因为只要他的子孙节点有指向祖先的边,显然可以构成一个更大的强联通图。首先,我们要知道,Tarjan 算法来源于搜索树,那是什么呢,顾名思义就是按照搜索的顺序来遍历,所产生的顺序构成的树。再定睛一看,那一条红边就是回祖边,那么从一个点出发,一直向下遍历,然后忽得找到一个点,那个点竟然有条指回这一个点的边。然后我们先说一下桥的定义:无向图中,若删去一条边会使得这个图的极大连通分量数增加,则该边被称为桥。再举一个例子,红色是强联通分量,但是蓝色只是强联通图。
2024-07-16 19:01:20 898
原创 6.15训练总结数位dp
数位dp一般来说就是一个计数,主要是针对数位来计算的,跟数本身的大小无关。而且跟区间一样非常好判断,特别明显。一般有几个特点。数据范围一般非常鬼畜,从1≤n≤1e91≤n≤1e9或者1≤n≤1e301≤n≤1e30可谓是层出不穷一般都是计数,与数位有关。那我们由浅入深,先讲一下模版HDU3555吧。
2024-06-16 11:15:11 573
原创 5.4训练总结线段树
主要讲了线段树,线段树究竟是什么呢?其实就是一棵不那么满的二叉树,他有一下几个特点。维护序列的区间信息,方便查询每一个结点都是一个区间二叉树的基本性质,每一个非叶子结点都有222个分叉。接下来总结他们的表示方式根节点表示为111,然后左儿子表示为2∗i2 \ast i2∗i,右儿子表示为2∗i12∗i1。我们可以看这张图叶子节点长度为111,没有左右儿子那么每一个结点需要存储的有哪些信息呢?分别如下:lrl,rlr。
2024-06-15 11:55:43 841
原创 6.1训练总结树形dp
今天学习了树形dp和换根dp,这两个dp主要就是把普通的dp搬到树上去,再把根换掉,就是这么多。那我就先从普通的树形dp开始。
2024-06-15 11:50:51 1048 1
原创 CSP组T1怪物
就是说如果当前的最小你一剑砍不掉,对方也一剑砍不掉坐左边的怪兽,但是他砍完之后你再去砍就可以获得金币了,同理对方也是一样的道理,所以这道题的思路也就不是一个普通的贪心了。在你的回合,你可以选择攻击任意一只怪物,也可以选择不进行攻击。在对方的回合,对方会选择当前存活的,编号最小的怪物进行攻击。你需要合理地安排你的策略,使得你的得分最大,并求出这个得分。你们需要轮流对活着的怪物进行攻击,第一个回合是你的回合。被攻击的怪物将会损失攻击它的玩家攻击力的生命值,若此后它的生命值非正,怪物将会死亡,击杀它的玩家得到。
2024-09-15 08:59:31 792
原创 CF848A From Y to Y
我觉得话这一道题目就是一个简单的构造题目,随便取一段字符串来看看,就不难发现就是一个等差数列,所以说最小的合并应该就是按字典序排列以后的顺序合并。所以代码的结构差不多就是直接循环走一遍,然后如果可以输出就输出,不然就不输出。然后我们证明一下:考虑对于每一对ijij满足sisjs_i=s_jsisj计算贡献,然后我们可以每次合并看一下,他到底想让我们干什么东西,所以不难得出:如果合并sts,tst,本质就是计算有多少xyxy满足sxty。
2024-09-03 11:06:38 403
原创 CF637CPromocodes with Mistakes题解
这题其实难度不大,完全就是可以暴力水过,大致思路就是以dissisjdissisj表示sis_isi和sjs_jsj不同的数量,那么对于任意sis_isi和sjs_jsj,一个不合法的k会使得存在xxx满足dissix≤kdissjx≤kdissix≤kdissjx≤k,进而dissisj≤dissixdissj。
2024-09-03 11:04:23 414
原创 完全平方数题解
一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也称平方数。小A认为所有的平方数都是很perfect的~于是他给了小B一个任务:用任意个不大于n的不同的正整数相乘得到完全平方数,并且小A希望这个平方数越大越好。请你帮助小B告诉小A满足题意的最大的完全平方数。首先我们要知道一个性质:对于一个完全平方数,其分解质因数后每个质因数的次幂为偶数,所以我们将。因为将每个数质因数分解的复杂度比较大,所以我们从质数开刀,记录有多少个数包含他,显然。的数分解质因数后,将质因数个数为奇数的。
2024-09-01 16:17:55 973
原创 树链剖分学习笔记
首先,因为后面在讲解的时候会涉及到一些名词,我们来解释一下。重子:对于每一个非叶子节点,它的儿子中以那个儿子为根的子树节点数最大的儿子为该节点的重子。轻子:跟重子相反,一个点不是重子就是轻子(叶子节点除外),对于每一个非叶子节点,它的子中非重儿子的剩下所有儿子即为轻子。重边:一个父亲连接他的重子的边称为重边。轻边:跟重边相反,每一条边不是重边就是轻边。重链:重链的要求非常难,一点是相邻的重边连起来一个重子的链就是重链。如果有还不理解的同学,我们来画一张图来找一找这些东西在哪里。
2024-08-19 11:19:25 702
原创 白兔的字符串
所以我换了一个简单的方法:二分。事实证明,可以AC,然后注意一开始一定要。,至于查找的方式,用 map 的话不是一般的慢,大概是 TLE 55,个字符串的时候顺便直接查找上面是否出现了字符串,如果有的话那么。的第一个字符移动到最后一个,如果操作若干次后能够得到字符串。长度下的值,这里应该没有什么问题吧。白兔想知道,对于白云的每一个字符串,它有多少个子串是和。首先我们分析一下,既然循环同构,那么我们可以将串。的长度,然后用 Hash 保存每种。所有字符都是小写英文字母.提示:对于一个字符串。
2024-07-24 16:53:06 902
原创 match 题解
这道题其实就是一道反悔贪心,就是先贪心选最大的,然后在另外颜色加进去一个负的就可以了。然后每次儿子到父亲的元素都去掉边权即可。其实不难,但是写起来需要用优先队列和vectorvectorvector。
2024-07-23 15:37:32 162
原创 CQOI余数之和
根据模数据,我们可以知道,这道题又要用到数论分块了,所以我们从。那么搞清楚这一点之后,我们又知道高精取模也就是。首先,简化题意是必不可少的,那么这一题求的就是。种取值所以时间复杂度。
2024-07-23 15:35:34 692
原创 5的倍数的个数
有多少种方法可以使得删除若干个数字后剩下的数字串构成的数字能被。可以有前导零,但删完后的数字串不能为空。这道题我们需要先考虑单独一个串的情况,假设第。这段里面的数非常随意,每一个会对答案产生。次方种情况,再用乘法原理乘上第二个。中的每个数字都删或不删,总共就是。的情况,假设单独一个串。的长度,相当于把第一个。全部删掉就满足条件了。
2024-07-23 15:33:25 667
原创 回文构造机
那样我们就可以分离,也就是说先统计字母的个数,如果是偶数,那么分一半输出,最中间可以带一个奇数个的字母,然后偶数的呢就搞定了,最后奇数一轮一轮的输出。然后答案其实是取决于奇数个字母的数量。题目大意:XTX非常喜欢回文串,他认为回文会给自己带来好运,有一天他看到一个字符串突发奇想,如果将这个字符串所有字符打乱,然后每次操作只能挑选若干个能构成回文串的字符组合成一个字符串,XTX最少需要操作几次才能取完所有字符。**,因为偶数自己要走一轮,不然直接错了,其他的话难度没有那么高,分开来写即可。
2024-07-23 11:45:22 323
原创 寒风农场题解
这道题目的难点就在于读题目,我们不妨来简化一下题面,接下来就是皆大欢喜的暴力了。再再化简一下,可以得到。的倍数,我们再化简一下。这个式子什么时候等于。这个式子什么时候等于。
2024-07-23 11:43:37 956
原创 [POI2014] KLO-Bricks
所以为了变成这个样子,我们就需要将这些砖块给他抹掉。那么思路就变得清晰了,就是每次去颜色最多的方块放上去。但是因为结尾的方块会影响,所以呢如果有同样多数量的,优先取后面的。然后因为每次都要取最大值的,所以可以使用优先队列维护。题目大意:给你每种颜色的砖块数量,相同颜色的砖块不能放在一起,两头颜色已经确定,构造一种方案,或者输出无解。思路概述:首先这道题我们不妨先思考一个特殊的情况,就是如果它每种颜色的砖块数量都是一样的,那么肯定是。
2024-07-23 11:42:25 324
原创 序列(bzoj1108)
我觉得吧,其实这一道题目个数论的关系并不大,我使用贪心加乱搞写出来了。后来问了一下大佬,知道了其实贪心暴力按照对称轴对折这种找区间大小这么做,其实跟求不等式挂钩的。个一元一次不等式,直接求解就可以了。但是我个人认为还是贪心对折好理解一点。有一个非递减的整数序列。
2024-07-23 11:40:28 861
原创 因子个数和题解
我知道我的同桌非常聪明,想到了一个神奇的方法,也就是一起算。令f(i)为i的因子个数,求f(1)+f(2)+…的方法,但是这一题的数据证明了这一题应该需要。我认为都还可以,所以都放出来了,大家自己比对。首先,我们肯定会想到。
2024-07-23 10:23:03 294
原创 gcd之和(一维)
首先我们要认清楚一件事情,既然是要线性的,那么也就是说我们的枚举目标要改了,如果在去枚举。然后我们就找到了一位好朋友,欧拉函数的影子(是根号做法的关键)。必须互质,具体的证明可以使用中国剩余定理,不会的同学,翻上面。的方法当然是我们的辗转相除法啦,那么代码上面也有,再放一下吧。我们也使用最简单的哪一种去做,也就是从小到大跑,时间复杂度。的时间复杂度,那是绝对不可能的吧。,所以说连线性的复杂度都吃不消,那么我们只能想到了。的时间复杂度,那么这个代码的时间复杂度就是。的时间复杂度解决问题了,完结撒花!
2024-07-23 10:21:27 1306
原创 再来点boss题解
我们可以发现同一个边双内的点之间没有必须经过的边。所以在这一道题目中,我们只需要把给我们的图给缩点缩成一棵树,然后跑两边 dfs 求树的直径即可,也就是 2 个板子套一下就可以了。找到两个点 s,t ,使得 s 到 t 必须经过的边最多(一条边无论走哪条路线这一条边都经过,这条边就是必须经过的边)。if(dfn[s]<=low[v])//直接就是一座桥。void tarjan(int s,int last)//缩点板子,不必多说。void dfs_0(int s)//跑2遍dfs,求树的直径。
2024-07-22 16:41:43 502
原创 细胞分裂题解
那我们设 (k-1) \times y<x \leq k \times y (也就是说 k=\left \lceil \frac{x}{y} \right \rceil ),但是我们根据抽屉原理不难得出 x 至少要被拆分成 k 份,不然最大值一定会超过 y。其中的最小值呢,就是 k=\left \lfloor \frac{x}{k} \right \rfloor。若 x>y ,我们需要拆分 x 使得拆分后的最大值不超过 y ,而且根据贪心,拆分后的最小值要。若 x=y ,什么也不用动,最好的情况。
2024-07-22 16:41:12 624
原创 异或与乘积题解
首先,我们需要了解一个问题:异或是什么东西?异或简单来说0就是而进制中的加法,也就是不同就是111,如果相同就是000。好的,那我们就可以了解一个事情,异或肯定小于等于加法,加法小于乘法,但是,有两种情况会出现反例,什么呢?就是有000的情况,但是不难发现,ai≥1ai≥1所以不用管。还有一种就是ai1a_{i}=1ai1那么如果他异或偶数,那么就1+11,不然就−1-1−1。所以我们就先分离出111的位置,然后利用和一定,差小积大。
2024-07-21 08:29:03 608
原创 分金币题解
思路概述:这题首先还是贪心,但是因为左边和右边都可以给你金币,而且你也可以给别人金币,所以一左一右可以完美抵消掉,那么思路也就非常简单了,我们不妨假设一个人原有。思路概述:这题首先还是贪心,但是因为左边和右边都可以给你金币,而且你也可以给别人金币,所以一左一右可以完美抵消掉,那么思路也就非常简单了,我们不妨假设一个人原有。每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等。你的任务是求出被转手的金币数量的最小值。个人,每人有一定数量的金币,金币总数能被。的几何意义,然后再取一个中位数即可。
2024-07-21 08:27:22 836
原创 玩具谜题(洛谷p1563)
题目大意:小南要通过小人给出的提示,以及它们的朝向来判断出眼镜在哪儿好吧,这道题还是挺水的,一看就知到要用结构体head(表示方向)和name(不用说,是名字)。方向用0和1表示,一个表示右边与左边(随你定)然后把指针now向左或向右移,不过要小心他是环形,要mod小人数。好,贴上我新鲜出炉的AC代码,COME ON!!!然后吧!!!
2024-07-19 20:25:08 157
原创 线段覆盖(洛谷p1803)
别着急,先听我把话说完。那么,我们排完顺序就可以用while或for循环,同时也要定义一个mini数组,表示当前比赛结束时间,如果这轮比赛开始时间>=mini,那么ans++;在这种情况下,我们会去选比赛1,因为它的结束时间早,可以去参加更多比赛。说的差不多了,是时候把新鲜出炉的代码贴给大家了!),同样因为它的结束时间早,可以去参加更多比赛。很显然, 在这种情况下,我们也选比赛1(...
2022-08-09 22:15:41 266
空空如也
小A.采西瓜的很好的问题
2023-06-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人