自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 泰勒展开的推导及应用

处展开的情况,因为其他情况可将函数平移转化得到。,而等式右边又是已知的,则。,我们就可以依次求出所有的。

2024-07-17 19:59:27 1030

原创 洛谷 P8367 [LNOI2022] 盒 题解

考虑给定 a,ba,ba,b 时怎么做。显然:ans=∑i=1n−1wi∣∑j=1iaj−∑j=1ibj∣ans=\sum_{i=1}^{n-1}w_i\Bigg|\sum_{j=1}^ia_j-\sum_{j=1}^ib_j\Bigg|ans=i=1∑n−1​wi​​j=1∑i​aj​−j=1∑i​bj​​因此,若设 ci,dic_i,d_ici​,di​ 分别为 ai,bia_i,b_iai​,bi​ 的前缀和,答案即为 ∑d∑i=1n−1wi∣ci−di∣\sum\limits_ d\sum\li

2024-07-17 19:58:18 653

原创 ABC234G Divide a Sequence 题解

可结合下图理解(只有黑色矩形所在的下标可能成为最大值,且其是最大值的区间在其前一个黑色矩形所在下标到它前一个下标之间,如红色区间所示)。由于要求所有划分方案的总和,并且难以存储划分的具体方案,因此我们可以通过动态规划来避免对具体方案进行讨论。划分为若干段的方案的价值为每段的最大值减去最小值的差的乘积。那么我们可以看出来这需要运用到单调栈,栈中储存的是黑色矩形所在下标,用于求出图片上面定义的。同时,我们可以将求乘积的和转化为将之前求出的和乘上同一个数。同理,单调栈的具体过程可参考代码。

2024-06-25 14:21:07 728

原创 洛谷 P1415 拆分数列 题解

给定一个仅由数字构成的字符串 sss,用 将其划分为若干个正整数,使其严格递增。求在满足最后一个数字最小的情况下,字典序最大(第一个数最大,在此基础上第二个数最大……)的方案。设 f[i]f[i]f[i] 表示把前 iii 个数按照条件划分后,最后一个数字最大的起始下标为 f[i]f[i]f[i](此时最后一个最小)。若将 s[x⋯y]s[x\cdots y]s[x⋯y] 表示为 sss 中下标属于 xxx 到 yyy 的字符组成的数字,转移方程:f[i]=max⁡{j∣j∈[1,i]∩Z,s[f[j−

2024-03-02 20:31:48 995

原创 洛谷 P2282 [HNOI2003] 历史年份 题解

给定一个仅由数字构成的字符串 sss,用 将其划分为若干个正整数,使其严格递增。求在满足最后一个数字最小的情况下,字典序最大(第一个数最大,在此基础上第二个数最大……)的方案。给定一个质数 ppp 和一个模数 qqq,并将字符串变为一个 ppp 进制数,并用前缀和数组 HashHashHash 记录。则 Hash[i]=(Hash[i−1]×p+s[i]−c0) mod qHash[i]=(Hash[i-1]\times p+s[i]-c_0)\bmod qHash[i]=(Hash[i−1]×p+s[i

2024-03-02 20:29:27 1062

原创 洛谷 P2051 [AHOI2009] 中国象棋 题解

给定一个 n×mn\times mn×m 的棋盘,需要放置若干棋子,使得每行、每列至多只有 222 个棋子,求放置棋子的方案数。首先想到动态规划,考虑如何设计动态规划的状态。由于对于放置棋子问题一般按照“行”来转移,因此对于行的限制很容易实现。于是考虑存储有关列的限制的信息。那么我们可以令 f[i][j][k]f[i][j][k]f[i][j][k] 表示前 iii 行中,已经放置了 jjj 列只有一个棋子的列和 kkk 列有两个棋子的列(即有 m−j−km-j-km−j−k 个空列)。考虑如何进行转移。分

2024-03-01 12:18:50 920 1

原创 洛谷 P6834 [Cnoi2020] 梦原 题解

有一棵有 nnn 个节点、根节点编号为 111、形态不确定的树,且每个点都有个权值 aia_iai​。对于任意节点 i∈[2,n]∩Zi\in[2,n]\cap\Zi∈[2,n]∩Z,其父亲将从 [i−k,i−1]∩N+[i-k,i-1]\cap\N^+[i−k,i−1]∩N+ 中等概率选取一个。当树的形态确定后,将进行若干次操作,每次操作可以选择节点权值均不为 000 的一个联通块,并将该联通块内每个节点的权值减去 111。求最少操作次数的期望值( mod 998244353\bmod 998244353

2024-02-26 13:00:45 729 1

原创 洛谷 P6835 [Cnoi2020] 线形生物 题解

给定 n+1n+1n+1 个节点,其中对于每个节点 i≤ni\le ni≤n,都有一条边 i→i+1i\to i+1i→i+1,同时给定 mmm 条返祖边 u→vu\to vu→v(其中 u≥vu\ge vu≥v)。求从 111 号节点出发,每次等概率地沿着当前所在节点的出边去往下一个节点,最终到达 n+1n+1n+1 号节点的期望步数。对于在图上随机游走的问题,有一个基于期望的线性性质的通用的技巧。对于本题,若设 Ex→yE_{x\to y}Ex→y​ 表示从 xxx 到 yyy 的期望步数,则 Ex→y

2024-02-26 12:14:55 961 1

原创 [ARC100E] Or Plus Max 题解

则我们可以考虑运用 SOSDP(高位前缀和),设。若把二进制数看为一个集合,则我们称二进制数。的最大值和次大值,则实际上可以将其看作为。维的 DP 进行了状态压缩,每一维只有。因此,我们应当先枚举维数。而由于我们要求的答案。,则可以将其转化为求。

2024-01-30 12:18:18 920 1

原创 高维前缀和与子集DP(SOSDP)

求二维前缀和的常用方法为容斥,但对于高维前缀和,容斥的效率显然是不够优秀的。因此,我们可以考虑从不同维度来进行转移,每次只转移一个维度。如何理解?图上的红色箭头表示第一维的转移,蓝色箭头表示第二维的转移。容易发现,由于我们先后进行了两种颜色箭头的转移,所以对于一个节点,其左上角的所有节点都可以通过向下若干次转移,并向右若干次来到该节点,而其他节点则无法转移至此,因此该算法的正确性可以得到保证。若推广至n维,只需先枚举维数,再进行转移即可。

2024-01-30 12:12:52 1214 1

原创 博饼概率计算

结果结果数概率所有情况46656100%无1430030.65%一秀(不含四进带一秀、五子带一秀)1740037.29%二举(不含四进带二举)930019.93%四进18754.02%三红25005.36%对堂7201.54%状元(包含所有普通以及特殊情况)5611.20%状元(仅包含普通情况)3600.772%五子1500.322%五红300.064%六子50.010%六红10.002%状元插金花150.032%

2023-12-30 17:45:18 1171 1

原创 洛谷 P8965 坠梦 | Falling into Dream 题解

到根节点的路径上边的边权异或和,则显然。,于是我们可以很容易地想到设。简单证明一下其正确性:若设。,且异或运算满足结合律,则。的最近公共祖先,则显然。为偶数,显然答案即为。再考虑如何求出答案。

2023-11-26 19:47:27 929 1

原创 洛谷 P8962 「WHOI-4」C yadiw. Slua, gassp, lhtubs. 题解

(总数减小于减大于减等于的个数),其中。则我们可以设立三层循环:第一层循环。首先我们考虑,若需要正确地找到第。表示数列长度,第二层循环。的值,再结合排列数和阶乘。小的元素(我们称之为。的数的个数,分别记作。大的元素,第三层循环。的大小关系是确定的。

2023-11-26 19:45:38 794 1

原创 【算法】组合数学1 - 球盒模型与第二类斯特林数

一共8类基本模型,以难度从易到难排序。n个的球放入k个的盒子,盒子中的方案数。kknn个的球放入k个的盒子,盒子中的方案数。nn−1k−1k−1n−1​n个的球放入k个的盒子,盒子中的方案数。nkkkk−1nk−1​n个的球放入k个的盒子,盒子中的方案数。nk​n个的球放入k个的盒子,盒子中的方案数。i0∑k−1​nk−i​n个的球放入k个的盒子,盒子中的方案数。nk​⋅k!n个的球放入k个。

2023-11-26 15:01:16 1085 1

原创 CF833B The Bakery 题解

是可以优化计算过程的,又因为每次需要求出一段区间的最大值,就可以想到通过线段树进行优化。段区间,需要求出每一段区间的价值之和的最大值。一段区间的价值定义为这段区间内不同数字的个数。若想要进一步优化,因为DP方程已经是。的了,因此可以猜测效率应为。所以线段树的区间需要减去。“阶段”求出的答案建立。相等的数的位置,则会对。朴素的DP方程是好想的。的值,即查找线段树中。的最大值(这样就保证。段价值之和的最大值。

2023-11-26 14:53:23 1245 1

原创 CF1088F Ehab and a weird weight formula 题解

其次,由于除了唯一的一个点权最小的点,其余的点都与一个权值比它小的点相邻,则我们可以将这棵树的根节点设为点权最小的点,且每个节点的父亲节点的点权都小于它。那么,对于一个点,其向自己的祖先连边一定更优于向自己的后代或兄弟连边的(若向兄弟连边,不如向。且除了唯一的一个点权最小的点,其余的点都与一个权值比它小的点相邻。同时,若每个点都向自己的祖先连边也就满足了连边完仍为树的条件。级祖先即为最优的答案。因此我们只需要预处理出每个点的。首先,对于点的代价可以很容易的转化到边上。个点重新构建一棵树,使得代价最小。

2023-11-25 20:29:11 797

原创 CF1270F Awesome Substrings 题解

于是,我们就可以进行前缀和,并开一个桶统计即可(由于前缀和可能为负,需要加个偏移量。但本题似乎只能使用根号分治的做法,于是我们可以枚举倍数。,并计算出满足条件的区间右端点所在的范围。最后输出答案即可,整体的复杂度为。因此,我们可以枚举区间的左端点。首先看到倍数问题,可以考虑。则满足条件的区间长度范围为。做法和根号分治的做法。时,我们观察到如果设。,则一个区间权值和为。,可能的倍数范围则为。

2023-11-25 20:26:55 835

原创 洛谷 P2569 [SCOI2010] 股票交易 题解

对于转移时需要求一段区间的最值,注意观察是否符合“滑动窗口”的特性,从而通过单调队列优化DP过程。DP的优化一般有:减少无用状态(降低维数)、减少无用枚举、优化重复的枚举过程等。,需要求最大值的区间长度是固定不变的,并且每次的位移都为。,因此想到了“滑动窗口”,即单调队列优化,复杂度可以降到。天后赚到的利润的最大值(过程中无需考虑资产是否为负)。股股票所赚到的利润最大值,因此需全部初始化为。,因为若到了最后一天还持有股票必然是不优的。首先,复杂度的瓶颈就在于买和卖的时候。观察可以发现,对于第。

2023-11-23 21:45:32 503

原创 洛谷 P8969 幻梦 | Dream with Dynamic 题解

即已知左右两个子节点的数据可以推出父亲节点的数据,所以本题需要某些特殊的操作来达到此目的。区间加操作对整个区间进行修改时进行的操作:若。操作对整个区间进行修改时进行的操作:若。位的数组,表示一组映射关系(初始设。则不具有结合性,考虑怎么进行结合。为从子节点传上来的值,无法确定)。的操作,必然会在之前的过程中下传。但由于线段树所维护的数据需要具有。操作后所加上的值的总和,而。区间加操作显然很好做,但是。操作之前所加上的值的总和,表示该区间是否已经出现过。节点内存储的所有数据清空。,很自然的想到运用线段树。

2023-07-20 19:57:42 83 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除