07 2021 档案
摘要:离散化:概念:把一些很离散的点个重新分配,使它们尽量集中.如在1e10的范围中取1e4个数据,如果不进行离散化,则要开辟1e10的空间,而实际上只要1e4的空间就可以装下每次取出的数据,所以可通过离散化来集中这些数据.离散化的本质就是建立一个映射关系,即第n大的数字对应是几,如一组数6,2,4,66
阅读全文
摘要:前缀和与差分:前缀和:即指某个序列的前n项和 差分:即前缀和的逆过程 1.一维前缀和与二维前缀和:一维前缀和:(1).预处理(O(n)),s[i]统计a[1]--a[i]的和 (2).查询(O(1)):要查从l--r的值的和即等于s[r]-s[l-1] 即:S[i]=a[1]+a[2]+...+a[
阅读全文
摘要:序列dp有关的一系列内容 1.LCS问题: 定义1:一个序列S,如果分别是两个或多个已知序列的子序列,且S是所有符合条件中的最长的,那么就将S称 为已知序列的最长公共子序列.所以如何用序列dp来得到最长公共子序列的长度即为所要解决的LCS问题. 补充:得到的最长公共子序列的长度可以用来做为判断两个字
阅读全文
摘要:二分搜索法:通过不断缩小解的可能存在的范围,从而得到求得最优解的方法. 二分搜索法查找符合值的操作思路:1.先将一批数排好序(后面的分析与题目应用默认升序) 2.进行二分查找,先找到符合条件的值(没有找到符合条件的值,就根据找出的值与条件的关系,通过二分来缩小范围,直到先找到符合条件的值)3.如果题
阅读全文
摘要://用二维dp解决完全背包问题(每种物品可以无限取,而不仅仅只有一个(物品同样不可分解))//题目见书挑战程序设计竞赛p57完全背包问题: //对于完全背包问题,和背包问题相比,我们一开始的考虑应该是在选择是否取物品的时候,背包问题我们 //只要考虑是取一件还是不取,而现在要考虑是取1-能取的最大件
阅读全文
摘要://二维dp动态规划解决01背包问题(固定重量内尽可能装价值高的物品(物品不可分解))://题目见书挑战程序设计竞赛P51的背包问题. //1.构造dp数组,明确各变量在问题中的实际含义 //分析:首先本题有三个量需要处理:第几个物品,重量,总共能获得的价值 //所以我们构造一个二维数组:dp[i]
阅读全文
摘要://位运算的基础知识及其应用 //基础知识://1.位运算的几种常见形式:&,|,>>,<<,^,~(所有位运算都是将数转成二进制进行按位操作)//2.对几种形式进行一个解释://&:表示按位与,其中有0出0,无0(即两个数都为1)出1//|:表示按位或,其中有1出1,无1(即两个数都为0)出0 /
阅读全文