摘要:
今天学构造,刷题遇到了一个题,我没明白最后一点(又好像明白了) 洛谷P1112 波浪数 题目描述 波浪数是在一对数字之间交替转换的数,如1212121,双重波浪数则是指在两种进制下都是波浪数的数,如十进制数191919是一个十进制下的波浪数,它对应的十一进制数121212也是一个波浪数,所以十进制数 阅读全文
摘要:
差分听过好久了,终于学了,总结一下。 差分其实与前缀和有关,a数组的差分数组b就是b[1]=a[1],b[i]=a[i]-a[i-1](i>1)。 他与前缀和的关系就是a数组的差分数组b的前缀和数组就是a数组。 没想到这么少,写个代码。 b[1]=a[1]; for(int i=2;i<=n;i++ 阅读全文
摘要:
莫队好不容易才学明白,总结一下。 先说问题:在一个长度为n的序列中,每个元素都有一个颜色a[i],一共有m次查询,每次查询给定一个区间,问区间内一共有几种颜色。 再说思路:这道题是典型的莫队题,思路即莫队思路。有左右两个指针,左指针在序列上移动,找寻下个区间的左端点,会改变区间内的颜色,右指针同理。 阅读全文
摘要:
学快速幂时,做到了矩阵快速幂,就学习了一下矩阵乘法,今天又碰到了一个关于矩阵乘法的问题,就顺便整理复习一下。 快速幂 快速幂顾名思义就是让乘方运算更加快速的算法,n^x这样的乘方运算本来是要n*n*n*……*n(共x个n)这样一个一个运算,但快速幂的思想是将n分成2的多次方和,如2^34=2^32* 阅读全文
摘要:
昨天写完分块,发现自己写的不行,上网搜了一下分块板子,不大一样(但自我感觉逻辑一样),又学了一遍,今天写了写,主要来发个分块板子(求和的)。 #include<iostream> #include<cmath> using namespace std; int n,m; int ge,shu; in 阅读全文
摘要:
今日新学—分块,但学得不好,只简单写写。 分块就是把结构中的的元素分成几块,因为要减少复杂度,块不能分太多也不能分太少,块数和每块内元素数接近最好,即块数约等于每块内元素数约等于sqrt(n)(总元素数为n)。 分块中处理两个问题时复杂度会降低—— 1.区间修改 long long v,u,w;ci 阅读全文