- 博客(6)
- 收藏
- 关注
原创 数位dp-AT_abc138_f
接着,我们又注意到$x \bmod y = x-[x/y]*y$,易得,当且仅当$[x/y]=1$,即$2*y>x$时,有$y-x \le x \bmod y$,且当$2*y>x$时,$x \bmod y = x-y$,所以我们可以将问题转化为$y-x=x \oplus y$,可以发现,对于一位的二进制,当$x[i]=1$,$y[i]=1$或$0$,当$x[i]=0$,$y[i]$只能等于$0$,$x$与$y$二进制位数一样,特殊的,为了保证$2*y>x$,对于$x$与$y$的第一位,必须都取$1$
2024-10-02 15:48:50
784
原创 纯粹的数学-AT_abc147_f
我们考虑集合中有$t$个数的情况,他们和为$t*x+l*d$,$l$有连续区间$ \frac{t*(t-1)}{2} \le l \le \frac{(2*n-t-1)*t}{2}$,在$l$取前$t$小个数字时有最小值,取前$k$大个数字时有最大值。首先,我们将 $\sum_{i \in S} a[i]-\sum_{i \notin S} a[i]$转化为$2*\sum_{i\in S} a[i]-\sum_{i=1}^na[i]$我们将$a[i]$拆开,得到$x+(i-1)*d$
2024-10-02 12:27:01
423
原创 DP优化大全-S
在设计程序时,我们往往会碰到这么一种情况:我们有两种算法,一种在当前数据较小时表现优(我们往往通过在线新创立表格,间接转移,更新,来做到这一点),另一种在数据较大时表现优(对于这种情况,我们直接转移即可)。但我们又会注意到,几乎所有的DP+数据结构题都是单点修改的,这是因为在单一时间里,我们只会处理单一位次上的数据,这告诉我们,在大部分场景下,我们都可以用树状数组取代线段树。我们刚刚提到的是优化离线区间处理的方法,但在实战中,数组值往往是不断更新的,这要求我们找到在线处理区间更新与求值的方法。
2024-09-29 21:45:59
446
原创 DP优化大全-J
在写动态规划的时,我们有时会发现,我们的代码在世间上很好,但在空间上却存在一些问题,这是因为我们使用了二维数组,一位记录时间,一维记录空间消耗。However,我们不难发现,我们其实没有必要记录时间戳,当我们更新当前节点时,所有的数据都是在之前被更新的,都具有转移的条件。前缀和的核心思路是将区间[x,y],看做区间[1,y]-区间[1-x-1],这样的话,我们只需要从一到n循环一遍,做预处理即可。算法优化的本质是将同样的事情用尽量少的时间完善,这就允许我们更多的利用整体,统一计算的思维。
2024-09-29 21:45:23
792
原创 CSP-S数论从入门到入土- 矩阵快速幂
碰到这种题目,第一反应是根据我们对于高中数学中数列的理解,转化递推式。但是,在转换后,我们往往会得出一个含有无理数的式子,这种式子就不好用快速幂处理了。我们了解了用快速幂加速矩阵乘法的算法,但是,在比赛中,很少出现很明显指出与矩阵相关的题目,更多时候,是让你用快速幂去加速一个递推式。矩阵快速幂,即为用快速幂加速矩阵乘法操作,使得矩阵高次幂的计算时间复杂度从。为什么可以对矩阵进行快速幂优化呢?这是因为矩阵乘法满足结合律。利用快速幂思想,我们不难写出代码。所以矩阵乘法满足结合律。的矩阵的矩阵乘法问题。
2024-08-07 22:24:29
716
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅