![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 55
路不明非
这个作者很懒,什么都没留下…
展开
-
整除分块(入门)
整除分块属于数论的一部分。这里尽可能脱离数论的知识。看一道例题。已知正整数n,求∑i=0n=⌊ni⌋\sum_{i=0}^n=\lfloor\frac{n}{i}\rfloori=0∑n=⌊in⌋以n=8为例,结果如下表i12345678⌊ni⌋\lfloor\frac{n}{i}\rfloor⌊in⌋84221111可以看到上面的表中相连着的同一数值的区间不少,由这些数值可以将这张表划分为多个区间块,这就是整除分块了。整除的性质使得从1原创 2022-04-19 16:50:23 · 196 阅读 · 0 评论 -
树状数组维护区间
树状数组维护区间顾名思义,就是用数组来模拟树形结构。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。树状数组可以解决大部分基于区间上的更新以及求和问题。1. 树状数组和线段树的区别在哪里?树状数组可以解决的问题都可以用线段树解决,这两者的区别在哪里呢?树状数组的系数要少很多,2.树状数组的优点和缺点修改和查询的复杂度都是O(logN),而且相比线段树系数要少很多,比传统数组要快,而且容易写。缺点是遇到复杂的区间问题还是不能原创 2021-10-21 20:42:38 · 330 阅读 · 0 评论 -
lowbit函数求解
lowbit函数求解lowbit这个函数的功能就是求某一个数的二进制表示中最低的一位1,举个例子,x = 6,它的二进制为110,那么lowbit(x)就返回2,因为最后一位1表示2lowbit函数求解有以下两种方式。方式一:先消掉最后一位1,然后再用原数减去消掉最后一位1后的数,答案就是lowbit(x)的结果;方法二:原数与原数的相反数进行相与操作。(解释的话如果学过计算机组成原理之类的很容易明白,)负数在计算机中以补码的形式存储。代码一:int lowbit(int n){ retur原创 2021-10-20 21:13:40 · 2498 阅读 · 0 评论 -
RMQ(区间最值查询)
RMQRMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大值。解决这类问题方法有很多,比如ST,树状数组,线段树等等都可以进行维护区间最值,ST作为离线算法,具有一定的优越性,时间复杂度最小,但是不支持区间修改,如果是区间修改可以使用其他方法。ST(Sparse Table)算法可以在O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询。1)原创 2021-10-19 21:53:09 · 221 阅读 · 0 评论 -
问题 G: Fancy 的硬币
问题 G: Fancy 的硬币Fancy 出去培训的时候得到了好多一块钱(买东西居然全都找硬币),Fancy 想尽快把它们用出去。但是一个一个查硬币实在太麻烦了,所以机智的 Fancy 想了一个方法:先把硬币数好分开装在一些小袋子里,这样掏钱的时候拿出几个袋子就解决了(忽略收银员眼上的黑线)。n表示 Fancy 拥有硬币的个数,求 Fancy 至少要用多少个袋子装这些硬币,才能使自己对于任意 ...原创 2020-02-23 22:20:13 · 326 阅读 · 1 评论 -
大数求gcd模板(高精度)
给两个大数求最大公约数。#include<bits/stdc++.h>using namespace std;const int N=1e6+5,inf=1<<29,base=10000;//10000而不是100000,不然容易爆掉!int T;int a[1000],b[1000],c[1000],f[1000];int read(){ int f...原创 2019-12-19 19:59:38 · 703 阅读 · 0 评论 -
super_log
super_logIn Complexity theory, some functions are nearly O(1)O(1), but it is greater then O(1)O(1). For example, the complexity of a typical disjoint set is O(nα(n))O(nα(n)). Here α(n)α(n) is Inverse...原创 2019-09-02 19:44:39 · 448 阅读 · 4 评论 -
杜教BM黑科技
杜教BM黑科技原理未知,主要适用于线性递推式,据说这个BUG级模板可以求线性递推式的第n项,只要手推递推式的前几项,放入模板就能求出第n项,前几项求出的的越多越好,一般推出前8项就可以,但是有的题还是要多几项。例题 hdu6198 number number number方法一:找规律 ,输出 f[2*k+3]-1的值就行,f[i]表示斐波那契数列第i项的值。方法二:黑科技,先打表前几项套...原创 2019-10-01 16:11:26 · 468 阅读 · 0 评论