摘要:
背包问题 1、01背包: 一个物品取或不取,外层枚举第几个,内层枚举体积 注意降成一维时枚举体积要倒序。 2、完全背包 每种物品无限个。同上,只不过逆序改顺序(因为无限,则也要考虑当前层对答案的影响) 3、多重背包 可以看成01背包,只不过一种物品有多个,还是逆序循环体积,只不过多了层枚举个数。 可
阅读全文
posted @ 2018-11-08 21:21
Frank-King
阅读(145)
推荐(0)
编辑
摘要:
DP一类总结 做dp一类的题时,有时会碰到这样的题: 既要求出最优解,又要求出满足最优解的方案数。 最优解还是按照常,就多加了个求最优解的方案。 我们多开一个数组g,状态和dp数组一样,表示满足这个dp状态的方案数。 递推过程中,如果要更新,则g之前的方案数清零,重新开始累加,否则如果等于最优解,则
阅读全文
posted @ 2018-11-08 20:01
Frank-King
阅读(118)
推荐(0)
编辑
摘要:
优先队列 基本操作: empty pop push size top 默认:从大到小排序:priority_queue<int>q 从小到大:priority_queue<int,vector<int>,greater<int> >q 注意:>>会被认为是位运算,要隔开 --> > >
阅读全文
posted @ 2018-11-08 19:57
Frank-King
阅读(158)
推荐(0)
编辑
摘要:
单调栈 一种重要的数据结构。 栈内维护信息的单调性,递增或递减。 对于插入一个数,如果不满足单调性,则弹出栈顶元素,一直到满足单调性或者栈为空。 应用:对于一个确定高度的矩形,可以确定它的左右边界,即向左找一个第一个比它小的位置,右边也是。 对于一个序列,寻找子序列,使得子序列中的最小值(或其他)乘
阅读全文
posted @ 2018-11-08 19:27
Frank-King
阅读(161)
推荐(0)
编辑
摘要:
CQOI2018 异或序列 题面见链接。。。(复制过来markdown。。。) 题解: 先来总结一下:一般题目中:询问你几个区间 [l,r],并问区间内……答案的数目,而且涉及到前缀和(如:sum 或 xor) 这样一般来说都往莫队那儿想想,先看看复杂度能不能过 n*sqrt(n)。 本题因为xor
阅读全文
posted @ 2018-11-08 15:06
Frank-King
阅读(158)
推荐(0)
编辑
摘要:
筛法 筛素数的常用手段: 1、Eratosthenes 筛法 复杂度:O(n log (log n)) 从小到大找到一个素数,筛掉所有它的倍数。 代码: 1 void Prim(int n) 2 { 3 //Eratosthenes筛选法 4 memset(check,false,sizeof(ch
阅读全文
posted @ 2018-11-08 13:06
Frank-King
阅读(205)
推荐(0)
编辑