- 博客(243)
- 收藏
- 关注
原创 浅谈马拉车
马拉车算法是用于以On时间复杂度计算回文串长度的,由于字符串的长度分为奇数和偶数,我们很难把中间为空的位置也设为一个对称的中心,那么我们考虑把字符串的长度全部设置为奇数,在每个字符的左右都插入一个其他字符,如#,这样如果是下标从0开始,那么所有的奇数位就是原始的字符串,所有的偶数位置就是插入的字符#,长度为2∗n1,其中n为原始字符串长度接下来设置一个长为2∗n1的数组lps(Longest Palindromic Substring)记录以当前i。
2025-03-25 11:30:40
669
原创 后端架构学习笔记
通过在线分析引擎拿到数据链路上负载均衡所使用的权重的数据,快速得到权重反馈给注册中心,同时写一份离线数据到时序数据库,最后通过离线分析引擎反馈给在线分析引擎,如通过机器学习等帮助在线分析引擎在进行分析时做更好的算法调优。动态权重决策中心首先从注册中心获取服务注册信息,根据配置中心获取服务在注册中心的名称,帮助动态权重决策中心能更好的跟注册中心进行交互,然后根据宿主信息采集服务所有容器指标进行复杂运算来更新服务注册信息。云原生场景下,微服务大可不必在业务逻辑中实现符合通信标准的交互逻辑,而是交给框架来做。
2025-01-20 17:05:04
1040
原创 后端开发流程学习笔记
为什么要有流程?传统的瀑布模型:一个最直观的流程模型敏捷开发:更现代的流程模型TheScaledAgileFramework(SAFe):是一套管理框架。
2025-01-19 17:31:17
887
原创 Git学习笔记
创建一个demo文件夹mkdir demo进入demo文件夹cd demo项目初始化git init输入git init后会返回提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中提示:配置使用初始分支名,并消除这条警告,请执行:提示:提示: git config --global init.defaultBranch <名称>提示:提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
2025-01-16 12:32:48
767
原创 贡献分析题
不难发现,左式可以直接运用前缀和维护,右式通过模拟可以发现,右式是一个累加的过程。,表示当前情况是在上一个状态的每个数后面多添加了一个数,所以上一个状态的每个数都得乘。,可以在每个数字之间添加或不添加加号得到一个式子,求出所有情况下式子的和,答案对。,所以考虑每一位数字对答案的整体贡献,因为没有取模运算,所以采用高精度进行计算。存储所有数字作为个位时出现的和,根据差分思想,到第。非常的大,所以考虑每一个数字对答案的贡献是多少。时,他不再产生贡献,因此根据关系可以进行递推。个数字的所有情况一共的贡献是多少。
2025-01-04 15:13:56
776
原创 MySQL数据库(基础篇)
数据库是"按照数据结构来组织、存储和管理数据的仓库"是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合文件数据库的具体体现,就是磁盘的文件或者内存的一段数据一种长期存储手段,不主动删除数据不应该丢失数据库中数据存储是有组织的结构,方便数据读取和修改等数据库数据属于可共享的,符合真正开发需求数据库管理系统(DataBase Management System,DBMS),指一种操作和管理数据库的大型软件,用户通过数据库管理系统操作数据库中的数据。
2024-12-26 17:55:03
814
原创 F - Double Sum 2
然后发现仍然不太好直接求每一组里的答案,但可以很容易的求出来一个后缀和,即大于等于。下具有相同意义的组内元素个数和组内元素的和,即可快速求出答案,注意到。,也得在答案里再加一次,时间复杂度是。的定义可以发现,得到的值是去掉了。考虑把这些数据进行分组计算,每。的所有答案,只需要记录一下模。
2024-12-20 10:54:19
983
原创 Shell学习笔记
HOME,$PWD,$USR,$SHELL,$PATH等输出的时候echo $HOME定义的是一个变量,而printenv HOME只是打印内容显示当前shell中所有的变量:set定义局部变量:变量名=变量值,注意的是=前后不能有空格,不然会把空格前面的当成一个命令而无法执行定义全局变量:先定义局部变量,然后执行 export 变量名 就成了全局变量定义只读变量:readonly 变量名=变量值,只读变量不能撤销unset撤销变量:unset 变量名。
2024-12-10 17:34:22
1037
原创 AtCoder Beginner Contest 383 E、F
之间可能存在很多路径,基于贪心的思想,那肯定是最大的边权越小越好,因此把所有边先按照边权大小进行排序。假设当前的每一个点都是独立的点,根据Kruskal求最小生成树的方法,把边两端的点依次加到集合里,这样在确保。根据题意不难发现,每种物品只有选与不选,需要记录的状态有:物品颜色的种类、物品颜色的价值,要求的最大值是所有物品的。的物品的最大价值,但发现这里面少了一维,没法记录当前有多少种颜色数,但现在空间复杂度已经到了。,因为只需要颜色种类个数,而不需要知道拿了哪些颜色,所以可以根据颜色进行排序,再在。
2024-12-09 15:00:59
1012
原创 F. Rare Coins
之间背包的价值总和比剩下的其他背包价值总和高的概率。算出来的,那么只需要计算不等式左边部分,即。,那么不在该区间内的金币数量就是。该式子可以通过计算后缀和快速得出。发现左边可以进行合并,因为。个银币,每个金币的价值为。,然后对于每次询问,在。
2024-04-11 21:20:37
746
原创 H. GCD is Greater
然后考虑除了上述情况的其他情况,根据贪心想法,肯定是gcd越大越好,那么我们可以存下每个数以及其约数出现次数的和,然后从大到小枚举gcd的大小,暴力判断即可,只需要判断能取到的最大gcd即可,其他的必然不会比最大的更优。首先贪心地想到,若想gcd大,选择的数的数量越小越好,即只选择两个数,因为再选择别的数gcd不会再增加,而不会让结果更优。个数并计算所选择数的gcd,后手选择剩下的数,并计算剩下所有的数按位与的结果,再加上给定的。,如果先手的结果大于后手,则先手赢,否则后手赢。对于上述三种情况,当该位为。
2024-04-11 20:59:02
1063
原创 F1. Counting Is Fun (Easy Version)
的数组b成为是good的,当且仅当通过执行下面这个操作若干次可以让数组b中所有元素变成。,要让所有元素都为0,差分数组所有元素也得是0,所以充要条件就是,的,即一次操作最少有两个元素进行减1,所以差分数组就需要选择一对。那么就可以用设计dp状态统计方案数了,根据数据范围,最大可以到。给定n,k,p,n为数组长度,k为数组中每个元素的取值范围为。级别,再考虑优化转移,发现可以考虑后缀和使得转移可以。个数组里有多少个数组是good的。进行,因为转移的时候考虑的都是。时符合条件的方案数,转移就是。
2024-03-28 15:23:32
1145
原创 2023年ICPC济南站G题
这个样例就是无解的,因此需要做的就是使用扩展域并查集,i表示翻转第i行,i+n表示不翻转第i行,因此,当两个1位于同一列的时候,合并(x, y+n)和(x+n, y),当两个1位于不同列的时候,合并(x, y)和(x+n, y+n),注意要判断i和i+n是否在一个连通块内,答案就是。},使得最终得到的01矩阵的每一列的1的个数不多于1个,问有多少种翻转方案,对结果模1e9+7。容易知道的是,设第i列和第c-i+1列总的1的个数为x,当x$\geq。当x=2时有两种情况,假设两个1分别位于第x和y行。
2024-03-13 18:10:31
1727
原创 pb_ds简单运用
在算法竞赛中,我们只需要知道pb_ds都有什么操作,每种操作是干什么的即可,不需要了解的太深入。pb_ds可以直接当作set进行操作,其中insert和erase没有区别。该题可以直接用pb_ds近乎暴力秒杀,以及运用到启发式合并的思想。其中最关键的是它的swap()的时间复杂度是常数。
2023-11-07 15:58:16
269
原创 Happy Equation(数论+讨论)
通过打表发现,当a为奇数的时候,结果全为1,那么只需要考虑当a为偶数时的情况。,所以x一定不是奇数,x一定是偶数。 因为a为偶数,那么a一定可以表示为。的倍数有多少个即可,即算一个前缀和。一共有多少符合的即可,又因为。内,问有多少个x满足。
2023-05-30 21:18:27
608
原创 P3478 [POI2008] STA-Station(换根DP 二次扫描)
P3478 [POI2008] STA-Station(换根DP 二次扫描)
2023-03-16 07:53:03
111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人