随笔分类 - 笔记
-
树状数组
摘要:开局一张图,剩下全靠编。 对于树状数组,我的理解是有技巧的应用前缀和+神仙一般的二进制规律 1、改点求段 改点从下往上,将全部包括了这个点的c全部更改 1 int lowbit(int x) 2 { 3 return x&(-x); 4 } 1 void add(int x,int y)//将第x个 阅读全文
-
平方求和
摘要:Σn^2=1^2+2^2+3^2+.....+n^2 从立方差(不能用和,因为n^3这个数列我们没法求)公式入手 n^3-(n-1)^3=1(n^2+n(n-1)+(n-1)^2) =2*n^2+(n-1)^2-n 所以 2^3-1^3=2*2^2+1^2-2 3^3-2^3=2*3^2+2^2-3 阅读全文
-
完全立方公式
摘要:a^3-b^3=(a-b)(a^2+ab+b^2) a^3+b^3=(a+b)(a^2-ab+b^2) 困惑良久 a^3-b^3=a^3-b^3+a*a*b-a*a*b =a*a(a-b)+b(a^2-b^2) =a*a(a-b)+b(a+b)(a-b) =(a-b)(a^2+b(a+b)) =(a 阅读全文
-
快速排序
摘要:1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using namespace std; 5 void quick_sort(vector<int> & num,int left,int right) 6 { 7 if( 阅读全文
-
分组背包+二维费用背包
摘要:题目:https://www.acwing.com/problem/ 分组背包问题描述是共有n组物品,每组物品你只能选一个,求最大价值 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 using namespace s 阅读全文
-
混合背包问题
摘要:题目:https://www.acwing.com/problem/content/7/ 混合背包是一个比较简单的问题,也就是物品中既有01背包,又有完全背包,还有多重背包,这个时候的多重背包一般使用二进制拆分成01背包来做,因为用单调队列优化的话需要保证初始条件一样,也就是得先读入所有的物品,然后 阅读全文
-
bitset
摘要:我是蒟蒻一名,请大佬勿喷。 绝大部分来自https://www.cnblogs.com/magisk/p/8809922.html , 可以去大佬博客逛一逛 bitset是C++中类似数组的一种结构,但是因为每位只能是0或1,对于某些明显的二进制题目来说,如果你不会压位的话,bitsei确实为一个很 阅读全文