随笔分类 - ACM
摘要:离散对数问题: 在循环群(循环群的定义见密码协议学习笔记(1.4):密码学的一些数学基础 - Isakovsky - 博客园 (cnblogs.com))$(\mathbb{G},\cdot)$上已知两个元素$g,h\in\mathbb{G}$,求式子$g^x=h$中$x$的值的问题,叫做离散对数问
阅读全文
摘要:回顾:FFT FFT(快速傅立叶变换)学习 - Isakovsky - 博客园 (cnblogs.com) 目的:将多项式的系数表示法形式转换为点值表示法形式,或者说,快速计算出多项式在若干个点上的值. 中心思想:适当地选取自变量,使得自变量两两互为相反数,求出的多项式值可重复利用,减少运算次数 例
阅读全文
摘要:因为这两种算法都是随机化算法且都与数论问题有关,而且还有许多微妙的联系,因此放在一起整理. 素性检验问题 (主要参考资料:【朝夕的ACM笔记】数论-Miller Rabin素数判定 - 知乎 (zhihu.com)) (不完善的)Fermat素性检验: 由Fermat小定理可知,对于素数$p$,所有
阅读全文
摘要:0,取模与整除 这一部分讨论在c++中取模与整除的特性 取模操作,又称取余,在C++中的符号是% ,和乘除法属于同一运算优先级,模数不允许出现零正数模正数结果是非负数,很好理解,但出现了负数怎么办? #include <iostream> using namespace std; int main(
阅读全文
摘要:传送门 题意: 每次询问一个区间,求这个区间最长单调递增子序列的长度 题解: 赛时想到了尺取预处理,从当前的点开始第一个高度大于它的点的位置 然后就没有然后了 赛后看题解,用的方法是倍增,具体方法是,维护一个数组st[j][i] 代表从j点开始,跳$2^i$次能到哪个点 这样的话每次询问复杂度就到了
阅读全文
摘要:传送门 题意: 给出一个全由小写字母组成的字符串,让你找出三个区间,这三个区间不能重合,并且每个区间内1,每个字母出现的顺序不能超过m次,找出使得这三个区间长度之和最大的情况 题解: 1,如何找出最长的一个区间使得每个字母出现的次数不超过m次 用一个数组记录26个字母分别出现多少次,再用一个指针记录
阅读全文
摘要:传送门 题意: 输入一个5*5的矩阵,由01两种字符组成,判断写的是什么数字,0,8或9 题解: 观察数字的特征,8这个数字里有2个互不连通且不与边界相连接的0组成的连通分量 9这个数字有一个弯钩, 01110 01010 01110 01010 01110 观察图中红色的1,它上下左右四个邻接点只
阅读全文
摘要:传送门 牛牛定义了一个递归函数F(x),x为正整数且定义域范围$x \in [1,10^{18}]$ $ F(x) = \begin{cases} 1 & \text{ if } x=1 \\ F(x+1)+1 & \text{ if } x\neq1 \quad and \quad x%2=1 \
阅读全文

浙公网安备 33010602011771号