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

原创 快速傅里叶变换 FFT 学习笔记
文章目录FFT 学习笔记多项式:系数表示法:点值表示法:复数:前置芝士:向量:弧度制:定义:运算法则:FFT 学习笔记本文有错误之处请诸位大佬多多指正!FFTFFTFFT :快速傅里叶变换的英文缩写,快速傅里叶变换是对离散傅里叶变换 DFTDFTDFT 的优化,用来解决多项式上的操作如 卷积 等问题。多项式:系数表示法:一般在 初中 数学上,表示一个多项式我们用的是系数表示法设 A(x)A(x)A(x) 表示一个关于xxx 的 nnn 次的多项式,那么:A(x)=∑i=0nai∗xiA(x)
2021-09-10 19:43:40
440

原创 CSP -J/S & NOIP 2020 游记
CSP−J/S + NOIP 2020CSP- J/S~~+~~ NOIP~~~~2020 CSP−J/S + NOIP 2020游记游记 游记2020.10.102020.10.102020.10.10 Day0Day_0Day0人生总是那么奇妙,在CSP−J/S CSP-J/S~~CSP−J/
2021-01-22 10:17:38
259
原创 AtCoder Beginner Contest 375 G - Road Blocked 2
AtCoder Beginner Contest 375 G - Road Blocked 2题目大意给你一个n个点m条边的图,接下来考虑每一条边如果删除该边,1−>n1->n1−>n 的最短路长度不受影响,则输出 YesYesYes,反之输出 NoNoNo思路我才不会说我一直以为G是F的加强版搞得我写F的时候死活想不到更好的解法,但是其实不看题解我也不会写回到正题每次我们其实只需要判断这条边(不放设为第 jjj 条边)在1−>n1->n1−>n 的最短路中
2024-10-22 09:05:46
751
原创 AtCoder Beginner Contest 375 F - Road Blocked
对于每次加入的边,我们可以这样处理(可以理解为用这两个点将附近的点全部更新一次)我们可以考虑反向操作输入数据,不就变成了加边操作了嘛,这个就好处理了。,而且我我们需要任意两点最短路,因此可以考虑使用。但是删除边这个操作属实是有点难受了,那我们怎么办呢?给你一个n个点m条边的无向图,接下来有两种操作。后续的操作就没什么难度了。是加入的边的两个端点。
2024-10-20 14:01:48
947
原创 AtCoder Beginner Contest 375 E - 3 Team Division
注意到前两组数的总和一旦确定,第三组数的总和必然是一定的,因此最后一维可以直接扔掉,类比背包计数问题,我们可以得出这样一个状态转移方程。现在可以进行一个操作:将一个数从某一组换到另外一组。属于那种搜索一定会T,正解是奇形怪状的DP的抽象题。问最后能否使三组数组内数字之和相等,若不能则输出。所需要操作的最小次数,然后必然是MLE了。于是我们不妨从数据范围入手,注意到。不是n的倍数,显然无法操作成功。直接填入第一组,不消耗操作次数。,反之则输出最少操作次数。个数属于第一组,我们有。从第一组切换到第三组。
2024-10-20 13:43:58
830
原创 (AtCoder Beginner Contest 375)C - Spiral Rotation
我们考虑找找规律,注意到每次变换操作改变两个量本身和。首先如果按照题目给的方式直接进行模拟,时间复杂度。那么如何记录每个点被操作了多少次了呢。我们于是发现一个很有意思的周期。然后我们就可以考虑掉消去。不难证明操作数其实是这个。然后我们就可以不枚举。
2024-10-20 02:10:11
944
原创 (AtCoder Beginner Contest 375)D - ABA
给定一个只包含大写字母的字符串S,求解其长度为3的回文字序列个数。我们对于每一个字母建立一个前缀和数组。运用乘法原理,我们不难发现最后答案。首先暴力枚举区间计算答案。我们考虑使用前缀和思想。个字符里面出现的次数。
2024-10-20 02:04:45
342
原创 (AtCoder Beginner Contest 375)C - Spiral Rotation
我们考虑找找规律,注意到每次变换操作改变两个量本身和。首先如果按照题目给的方式直接进行模拟,时间复杂度。那么如何记录每个点被操作了多少次了呢。我们于是发现一个很有意思的周期。然后我们就可以考虑掉消去。不难证明操作数其实是这个。然后我们就可以不枚举。
2024-10-20 01:40:16
759
原创 (AtCoder Beginner Contest 375)B - Traveling Takahashi Problem
求按顺序走过这n个点并回到原点的总距离。任意两点之间的距离是欧几里得距离。按照题意模拟即可,时间复杂度。
2024-10-20 01:20:24
473
原创 (AtCoder Beginner Contest 375)A - Seats
给定一个长度为N的字符串SS只包含"#“和”."求 "#.#"子串 的出现次数。
2024-10-20 01:15:11
361
原创 2024 复健记
OI生涯结束两年了······这两天闲着无事翻了翻自己的优快云,发现上一篇文章已经是两年之前了。那时候退役,虽然不知道梦应归于何处,但依旧梦里栩然蝴蝶、一身轻。如今忆起松湖旧闻,只道是:人生若只如初见,何事秋风悲画扇。我是人间惆怅客,知君何事泪纵横星光流年,转眼之间,中学的岁月已经留在了时间的身后高考的号角响彻夏日的原野,24年的六月,青春的走向被定格在了命运的试卷上。印趣湖畔,白鹭依旧,星河长明,只是旅人的身影换了又换。命运的齿轮开始转动······博主也是高考结束了,现在在CUHK。
2024-10-19 15:06:27
1133
原创 未完成代码
暂存#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<vector>#include<cmath>#include<ctime>#define r register#define rep(i,x,y) for(r ll i=x;i<=y;++i)#d
2022-05-07 18:11:14
326
原创 牛客挑战赛57 B 异或矩阵 【数学】【打表】【找规律】
牛客挑战赛57 B 异或矩阵题目描述思路这里先抛出一个我无法证明的结论:最大答案一定是 2k−12^k-12k−1,满足2(k−1)−1<n∗m<=2k−12^{(k-1)}-1<n*m<=2^k-12(k−1)−1<n∗m<=2k−1将其记作答案 ansansans然后我们打表找规律,暴力使用8重循环。我们发现,对于任意一个矩阵,总会找到一个答案矩阵,矩阵中的元素个数为2,(如果 n∗m=2k−1n*m=2^k-1n∗m=2k−1,那么答案就是这个数,
2022-02-19 11:46:45
628
原创 牛客挑战赛57 A 构造题【最大公约数】【玄学?】
牛客挑战赛57 A 构造题题目描述思路因为数据比较水,这题有太多玄学做法了(同机房有人第二个样例没过直接AC的)首先找到数组中的最小值amina_{min}amin,答案一定小于等于amin+1a_{min}+1amin+1然后用 nownownow 表示当前的最大答案,向后循环时now=max(gcd(now,a[i]),gcd(now,a[i]+1))now=max(gcd(now,a[i]),gcd(now,a[i]+1))now=max(gcd(now,a[i]),gcd(now,
2022-02-19 11:24:23
563
2
原创 【ybtoj高效进阶6-2-5】余数之和/【luogu】P2261 [CQOI2007] 余数求和【 数论】【整除分块】
【ybtoj高效进阶6-2-5】余数之和 /【luogu P2261】 [CQOI2007] 余数求和题目大意:给定 nnn , kkk,求∑i=1nk mod i\sum\limits_{i=1}^{n}k \bmod ii=1∑nkmodi思路:先来分析一下整除分块这种东西根据取模运算的性质,x mod y=x−y∗⌊xy⌋x\bmod y=x-y*\left \lfloor \frac{x}{y} \right \rfloorxmody=x−y∗⌊yx⌋则原式=∑i=1nk−i∗⌊ik
2021-12-04 15:13:45
370
原创 2021-10-06 洛谷提高B组模拟赛 B 看错题的产物改编而来的产物【结论】【最大公约数】
2021-10-06 洛谷提高B组模拟赛 B 看错题的产物改编而来的产物题面思路输出最大值就是答案证明:证明:证明:因为是子序列,所以排序并不会影响答案,所以我们从小到大排序我们考虑从这个有序的序列中取出 jjj个数 a1,a2,⋅⋅⋅,an; ai<ai+1a_1,a_2,···,a_n;~~~a_i<a_{i+1}a1,a2,⋅⋅⋅,an; ai<ai+1设 gcd(a1,a2,⋅⋅⋅an)
2021-10-07 16:05:47
112
原创 2021-10-06 洛谷提高B组模拟赛 A 日常【模拟】
2021-10-06 洛谷提高B组模拟赛 A 日常 思路:因为最后一个 subtasksubtasksubtask 不算分,所以就有了一个 O(26∗n)O(26*n)O(26∗n) 的做法因为最后的答案一定小于等于 262626,那么每循环到一个位置,往后枚举,最多枚举 262626 位,统计最后的长度。至于正解的 O(n)O(n)O(n),就用两个双指针维护合法序列的开头和结尾,模拟跳动就好了我写的是正解代码:#include<iostream>#include<c
2021-10-06 16:56:15
276
原创 2021-09-29 洛谷模拟赛 T2 数字【搜索】
2021-09-29 洛谷模拟赛 T2 数字思路:因为要保证 444 的个数要和 777 的个数一样,所以输出串的长度一定是偶数我们发现,对于任意一个输入长度 lenlenlen 为奇数的字符串,答案一定是 4444⋅⋅⋅4477⋅⋅⋅77774444···4477···77774444⋅⋅⋅4477⋅⋅⋅7777(前半部分是 444, 后半部分是 777 注意 lenlenlen 要 +1+1+1)那么偶数呢?对于长度为偶数的字符串,我们使用深搜解决,每次判断当前位置填 4 还是填 7,如果
2021-09-29 19:30:28
110
原创 2021-09-28 洛谷模拟赛 T3 友谊序列 【结论】【位运算】
2021-09-28 洛谷模拟赛 T3 友谊序列题面思路:输出样例即可获得满分!!!人生第一次遇到如此哲学的题我们假设 ai xor bj=ak(bk)a_i~xor~b_j=a_k(b_k)ai xor bj=ak(bk)根据异或运算的规律,我们可以得到 ak(bk) xor bj(ai)=ai(bj)a_k(b_k)~xor~b_j(a_i)=a_i(b_j)ak(bk) xor bj(ai)=
2021-09-28 16:59:15
139
原创 2021-09-28 洛谷模拟赛 T1 破碎的饼干 【模拟】
2021-09-28 洛谷模拟赛 T1 破碎的饼干题目大意:给你 4 个 n∗nn*nn∗n 由黑白组成的网格,你要通过通过平移把它们拼成 2n∗2n2n*2n2n∗2n 的网格。你可以花费 1 个代价来修改某个格子的颜色,使得最后相邻两个格子的颜色都不相同问最小代价。思路:不难发现最后的矩阵一定是这两种情况(假设 n=3n=3n=3)[010101010]\begin{bmatrix}0 &1 &0 \\ 1 & 0& 1\\ 0& 1
2021-09-28 16:48:50
185
原创 2021-09-27 洛谷模拟赛 T1 年会小游戏【质数】【搜索】【数论】
2021-09-27 洛谷模拟赛 T1 年会小游戏原题 :反素数数据范围有变,处理一下 101810^{18}1018 时会爆 long longlong~~longlong long 的问题就好了或者使用 long doublelong~~doublelong double ?原来的题解代码:#include<iostream>#include<cstdio>#include&
2021-09-28 11:24:42
377
原创 2021-09-27 洛谷模拟赛 T3 走亲戚 【二分】【模拟】
2021-09-27 洛谷模拟赛 T3 走亲戚题目描述小X家大年初三要去拜访同村的所有亲戚,恰好他家的所有亲戚都住在一条东西走向的公路边,而车的油量有限,车子油量能行驶的距离为LLL,他对nnn个亲戚随机进行编号(1,2...n)(1,2...n)(1,2...n),假设马路的中点为000,某个亲戚的坐标 xix_ixi 就为该亲 戚到马路中点的距离(设中点以东的坐标为正数),而小X决定按照一个规则去拜访亲戚们:(1)先向东走,去东边能抵达的最远亲戚家。(2)如果油量足够,再向西走,去西边能抵达的
2021-09-27 17:08:39
309
2
原创 2021-9-26 洛谷模拟赛 T3 大鱼吃小鱼 【贪心】
2021-9-26 洛谷模拟赛 T3 大鱼吃小鱼题目大意给你 n 个数,选一些数两两匹配,但条件是大的数至少是小的数的两倍。然后如果有数没有匹配,则自己视为一对,否则一对匹配算一对。然后要你最小化对数__ By TJH思路:显然贪心首先从小到大排序,将区间划分为[1,n2][1,\frac{n}{2}][1,2n] 和 [n2+1,n][\frac{n}{2}+1,n][2n+1,n],两段。从左往右贪心选数匹配代码#include<iostream>#include
2021-09-27 07:53:37
136
原创 2021-9-26 洛谷模拟赛 T2 超级蚯蚓 【数学】
2021-9-26 洛谷模拟赛 T2 超级蚯蚓 【数学】题目大意给你 n 条线段,你每次会随机选两个线段头合起来,问你和 n 次之后恰好变成一个大环的概率。思路:代码:#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cstring>#include<vector>#include<cmath>#
2021-09-27 07:44:22
124
原创 2021-9-26 洛谷模拟赛 T1 小鱼吃大鱼【结论?】【数学】【模拟?】
2021-9-27 洛谷模拟赛 T1 大鱼吃小鱼题目大意给你一个堆数 a1,a2,a3 ⋅⋅⋅ an−1,ana_1,a_2,a_3~···~a_{n-1},a_na1,a2,a3 ⋅⋅⋅ an−1,an,让你从中选取两个数 ai,aj (ai>aj)a_i,a_j~(a_i>a_j)ai,aj (ai>aj),使得 ai mod aja_i\bmod a_jaimodaj 的值最大,1≤n≤2∗106
2021-09-27 07:25:47
104
原创 【ybtoj】 冲刺 NOIP2021 模拟赛 B 组 Day4 A 统计集合 【结论】【推式子】
【ybtoj】 冲刺 NOIP2021 模拟赛 B 组 Day4 A 统计集合题目大意:定义一个集合 SSS 的函数 f(S)=max(Si)−min(Si)f(S)=max(S_i)-min(S_i)f(S)=max(Si)−min(Si)问 SSS 的所子集的 fff 函数值的和是多少思路:首先,排序是必不可少的我们考虑每一个数对最小值的贡献,用它后面的数减去它再乘上两个数之间构成的区间个数得到一个式子:∑i=1n∑j=1i(a[i]−a[j])∗2i−j−1=∑i=1n∑j=in(a
2021-09-25 21:07:49
118
原创 【CSP-J2019】纪念品【动态规划 DP】【背包】
[CSP-J2019] 纪念品题目链接 :luogu P5662两年前的比赛题,现在才来补这个锅,我真的太菜了······题目描述小伟突然获得一种超能力,他知道未来 TTT 天 NNN 种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易无限次:任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品;卖出持有的任意一个纪念品,以当日价格换回金币。每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪
2021-09-13 21:38:57
338
原创 洛谷 P1919 【模板】A*B Problem升级版 【快速傅里叶变换 FFT】
【洛谷 P1919】 【模板】A*B Problem升级版题目大意给你两个超大整数 a,ba,ba,b,问 a∗ba*ba∗b其中 a,b≤101000000a,b\leq10^{1000000}a,b≤101000000思路高精度都是狗很明显,我们普通的高精度乘法不知道炸到哪里去了。我们发现对于一个 nnn 位的十进制数 KKK,我们可以看做一个 n−1n-1n−1 次的多项式,表示成A(x)=a0+a1∗10+a2∗102+⋅⋅⋅+an−1∗10n−1A(x)=a_0+a_1*10+a_2
2021-09-11 09:19:23
298
原创 【洛谷 P5367】 【模板】康托展开【数论】【树状数组】
【洛谷 P5367】【模板】康托展开题目大意:给你一个排列,问你按照字典序它是第几个排列?思路:首先,最简单的暴力做法就是用深搜从头开始将所有排列按照字典序生成,看看这个排列在第几个位置。时间复杂度 O(n!)O(n!)O(n!),然后 n≤106n\leq 10^6n≤106,你算到宇宙灭亡估计都算不出来。所以这里我们引入康托展开,对于每一个排列 a[ ]a [~]a[ ],我们有:f[i]=∑j=i+1n(a[i]<a[j])f[i]=\sum_{j=i+1}^{
2021-08-30 09:58:47
220
原创 【洛谷 P5520】[yLOI2019] 青原樱 【组合数学】
[yLOI2019] 青原樱 【洛谷 P5520】好喜欢 《青原樱》这首歌, 带我入坑银临古风的 题歌。%%% 一扶苏一 dalao星川之下皆萤火尘埃,我独行在人潮你天真而待。相遇若是借丹青着色,青原上绯樱如海。晴昼秋岚皆入我襟怀,只岁暮天寒独对江心月白。谢此际春风带我慷慨,回眸处一川青黛。——《青原樱》题目大意:你有 mmm 朵花,有 nnn 个花盆,每朵花...
2021-08-27 12:10:38
282
1
原创 洛谷 P3810 【模板】三维偏序(陌上花开)【cdq 分治】【树状数组】
【洛谷 P3810】 【模板】三维偏序(陌上花开)题目大意:给你一堆数,每个数有三个权值a[i],b[i],c[i]a[i],b[i],c[i]a[i],b[i],c[i]设 f[i]f[i]f[i] 表示 ∑(a[j]≤a[i]) && (b[j]≤b[i]) && (c[j]≤c[i]) i !=j\sum(a[j]\leq a[i])~\&\&
2021-08-25 11:49:51
212
2
原创 2021-08-24 SSL 模拟赛 T3【递推】【矩阵乘法】
2021-08-24 SSL 模拟赛 T3题目大意:题目描述已经不能再简单了······思路:比赛时唯一 AC 的题目。经过考场上的一番玄学乱推+对着样例模拟了一番,得到了一个递推式:f[i]=f[i−1]+f[i−2]+f[i−3] (f[1]=2,f[2]=4,f[3]=7)f[i]=f[i-1]+f[i-2]+f[i-3]~~~~~~~(f[1]=2,f[2]=4,f[3]=7)f[i]=f[i−1]+f
2021-08-25 08:18:48
97
原创 2021-08-24 SSL 模拟赛 T2 【莫队】【树状数组】
21-08-24 SSL 模拟赛 T2依旧没有标题。题目大意:题目的描述已经够简略了······思路:70%:因为数据太水,直接暴力O(n∗m)O(n*m)O(n∗m) 可以拿70分,但是根据大佬的说法,这 70% 是给主席树的(注意题目中的 l=1l=1l=1)赛时我当然是打了暴力啦。100%:如果没有数据所处的范围[a,b][a,b][a,b],那么这一道题就是一个莫队的模板题 (比模板还模板)对于要答案在区间[a,b][a,b][a,b]的范围内,我们可以使用一个树状数组在值域上维
2021-08-25 07:53:31
109
原创 2021-08-24 SSL 模拟赛 T1 【结论】【位运算】
2021-08-24 SSL 模拟赛 T1怎么又开始没有标题了?这是一道散兵题,我也是散兵。题目大意:给你一个序列,问你怎么划分才能使得数列中每一段的异或之和最大。思路:众所周知,对与每一个二进制数,二进制的每一位上做异或运算,有:0 xor 1=1,0 xor 0=0,1 xor 1=00~xor~1=1,0~xor~0=0,1~xor~1=00 xor 1=1,0 xor 0=0,1&nbs
2021-08-25 07:33:04
82
原创 【洛谷 P3224】 [HNOI2012] 永无乡【平衡树】【并查集】【启发式合并】
【洛谷 P3224】 [HNOI2012] 永无乡题目大意:给你一张图,告诉你点,边的关系,每个点有一个重要度排名,现在有两个操作:1:在两个点之间连一条边2:询问某个点所在的连通块中重要度排名第 k 的点的编号思路:看到这种需要动态插入某些东西,又要维护某一个范围内的第 k 小值,第一时间想到平衡树,然后维护连通块肯定就是并查集了。我们把每个连通块用一棵平衡树来维护,每次并查集的时候暴力将两棵平衡树合并。注意要将小的平衡树合并到大的里面,这样复杂度就是小的平衡树的大小,其实就是启发式合并,
2021-08-22 19:35:45
108
原创 【洛谷 P3391】 文艺平衡树 【平衡树】
【洛谷 P3391】 文艺平衡树题目大意:写一种数据结构支持静态区间的翻转操作。思路:考虑使用线段树中的懒标记,每次区间发生变化时遇到懒标记就下传。每次下传时懒标记 xor 1xor ~1xor 1,就是如果没有懒标记那么就打上,如果以前有的话那么说明这个区间翻转了两次,和没翻转一样。使用平衡树 fhq Treap 解决。注意分裂的时候不是按照权值分裂了,而是前 k 个。所谓的模板题代码:#include<iostream>#include<cst
2021-08-21 15:34:26
203
原创 平衡树学习笔记之 fhq Treap
平衡树学习笔记 1:fhq Treap(非旋 Treap)正文开始前首先 %%% fhq 大佬。众所周知,平衡树是一种 非常猥琐 码量堪忧的数据结构。他的祖先是一种叫做二叉搜索树 ( BSTBSTBST ) 的东东。话说二叉搜索树是个什么玩意呢?二叉搜索树:显而易见,这是一棵二叉树 (逃),它的每个节点上有一个需要我们维护的值,我们称为“关键码”然后这棵树的中序遍历是一个关于关键码的一个严格单调递增序列 (假设没有重复的元素) 是有序的。然后就没了。当然我们可以用这玩意来搞很多非常 恶心
2021-08-21 15:04:46
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人