- 2024-10-06李超线段树
最经典应用就是维护一个二维平面直角坐标系,支持动态插入线段(理解为有值域的一次函数\(y=kx+b\)),询问已插入线段与直线\(x=x_0\)交点的纵坐标最值。即当\(x=x_0\),求\(max\)或\(min\){\(k_ix+b_i\)}对于普通求法的\(O(n)\)遍历,如何优化时间复杂度呢?其实就是找一种方
- 2024-09-19字符串指南
kmpkmp是模式串匹配的算法,本来最坏时间复杂度可以达到$\operatorname{O}(n\timesm)$,但是kmp可以将复杂度优化到$\operatorname{O}(n+m)$。kmp有个很重要的东西,叫做$nxt$失配数组。比如对于一个字符串$s$,它的失配数组$nxt_n$就是$s$的最大前缀等于后缀的长度。$\op
- 2024-09-04CF 2010 C2. Message Transmission Error (hard version) (*1700) 字符串+哈希
CF2010C2.MessageTransmissionError(hardversion)(*1700)字符串+哈希题目链接题意:给你一个字符串,让你判断是否是由某个字符串首尾拼接重叠而成的。思路:做法很多,最暴力就直接枚举字符串长度,然后哈希即可。代码:#include<bits/stdc++.h>usingnamespacestd;#def
- 2024-07-31P3501 [POI2010] ANT-Antisymmetry 反对称 题解(字符串哈希+二分)
原题题意若一个由010101组成的字符串将000和
- 2024-07-25字符串哈希/双哈希模板
structHash{usingu64=unsignedlonglong;u64base=13331;vector<u64>pow,hash;Hash(string&s){s=""+s;intN=s.size();pow.resize(N+1),hash.resize(N+1);pow[0]=1,
- 2024-04-29洛谷 P5293 [HNOI2019] 白兔之舞
洛谷传送门所求即为:\[\begin{aligned}f_t&=\sum\limits_{m=0}^L\binom{L}{m}A^m[k\midm-t]\\&=\frac{1}{k}\sum\limits_{m=0}^L\binom{L}{m}A^m\sum\limits_{i=0}^{k-1}\omega_k^{i(m-t)}\\&=\frac{1}{k}\sum\l
- 2023-11-04P3784 [SDOI2017] 遗忘的集合
传送门description对于一个元素都\(\leqn\)的正整数集合\(S\)(不含相同元素),\(f(i)\)表示使用集合\(S\)里的数加和为\(i\)的方案数,每个元素可以被使用多次,两个方案不同当且仅当存在一个元素在两种方案中使用次数不同。现给定\(n\)和\(f(i),1\leqi\leqn\)。求出集
- 2023-10-29『做题记录』[CF1601F]Two Sorts
[CF1601F]TwoSortslink:https://codeforces.com/problemset/problem/1601/FDescription 有一个数列\(\{a_1,a_2,\ldots,a_n\}\)是一个\(1\simn\)的排列,且所有的数都按照字典序排序,现在给出整数\(n(1\leqn\leq10^{12})\),求\(\left(\sum_{i=1}^n((i-a_i)\bm
- 2023-08-124954: 矩阵游戏
题目描述婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的\(n\)行\(m\)列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用\(F[i,j]\)来表示矩阵中第\(i\)行第\(j\)列的元素,则\(F[i,j]\)满足下面的递推式:\[\begin{aligned}F[1,1]&=
- 2023-07-28【算法】哈希学习笔记
1.哈希(hash)简介1.1前言又来写算法总结了qwq。今天是2023/7/8,期末考试已经考完了。初二下注定是一个煎熬的学期,所以我在这一学期并没有学什么新算法,OI也没什么长进。但倒是深造了几个算法,比如:dp,hash,线段树。之前一直想写一篇hash的学习笔记,但由于种种原因,并没有写成。于
- 2023-07-25python求复数的模
Python求复数的模简介在数学中,复数是由实数和虚数组成的数字。复数的模指复数到原点的距离,也称为复数的绝对值或复数的模长。在Python中,我们可以使用内置的cmath模块来计算和处理复数。求复数的模在Python中,我们可以使用cmath模块的abs()函数来计算复数的模。下面是一个简单的
- 2023-06-24CF1418G Three Occurrences 做题笔记
题目链接题意是输出所有区间满足其内部每个数要么出现$3$次要么不出现的个数。因为是区间,数量很多,发现贡献是可以抵消的,直接无脑预处理前缀的桶。然后枚举左端点,统计答案,怎么处理呢?疯狂地向右扩展,直到区间内有数字出现了$3$次以上(这样是对的,待会儿证明,另外扩展到前一个就
- 2023-02-11Johnny and Grandmaster——贪心
题目https://codeforces.com/problemset/problem/1361/B题意输入t(≤1e5)表示t组数据,每组数据输入n(≤1e6)p(1≤p≤1e6)和长为n的数组k(0≤k[i]≤1e6)。
- 2023-01-11python 中常见的 import 模块的方法(总结)
在用python进行编程时,经常会使用第三方模块包。这种包我们可以通过pythonsetupinstall进行安装后,通过importXXX或fromXXXimportyyy进行导入。不过如果是自己遍写
- 2022-12-11Rust中super关键字和self关键字的使用
随笔:fnfunction(){println!("functionglobal");}pubmodmod1{pubfnfunction(){super::function();println!("functionmod1");}pubmo
- 2022-09-01nim 4. 模块
看了一下nim的模块系统,真的非常简洁。1)一个nim文件就是一个模块2)通过import引入模块,引入的时候不需要带扩展名, 比如有个模块mod1.nim, 引入的时候:impor
- 2022-08-23ARC099F题解
被杀了,记录一下好了。对于他那个数组是否相等,直接判断复杂度很高,考虑通过哈希映射之后判断是否相等。对数组的Hash可以类似字符串Hash那样去做。于是判断一个区间是