摘要: 一、一维前缀和 前提:给一个长度为n的数列,m次询问,问[L,R]区间内数列各项和 所以,前缀和就是前面i个数的总和,所求区间和即为a[R]-a[L-1] 二、一维差分 前提:给一个长度为n的数列,对[L,R]区间加上或减去某个值,最后问[L,R]区间内数列各项和 三、二维前缀和 前提:给定一个n* 阅读全文
posted @ 2019-06-28 23:54 XXrl 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一、快速幂 整数:求a^n,把n化为2*(k1+k2+..+km); 矩阵:注意矩阵乘法。 复杂度:O(logn) tip:取了模(根据题目要求) 1 #include<bits/stdc++.h> 2 #define mem(a) memset(a,0,sizeof(a)) 3 #define l 阅读全文
posted @ 2019-06-28 21:58 XXrl 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 思路:找基准点,使得基准点左边都比它小或相等,右边比它大。 挖坑法:若设基准点在最左边,则先从右边开始(左边开始的话,无法保证交换的数小于基数2 1 4 9),找到第一个小于基准数的数字,放入左边当前位置,放入时左++;再从左寻找第一个大于基准数的位置,放入右边当前位置,放入时右--; 关键就是,把 阅读全文
posted @ 2019-06-28 10:49 XXrl 阅读(213) 评论(0) 推荐(0) 编辑