摘要:推荐博客:https://www.cnblogs.com/ivanovcraft/p/9019090.html 老实说,这篇博客写的很全,看完应该就会了; 核心代码喽~~int df[maxn],idnew[maxn],son[maxn],fa[maxn],top[maxn],siz[maxn],d 阅读全文
posted @ 2020-03-31 16:41 SuccessfulRoad 阅读 (1) 评论 (0) 编辑
摘要:递推 无后效性,最优子结构 -》状态转移方程 -》 注意初始化 (边界值) -》注意枚举顺序(完全背包第二维从小到大,01背包从大到小,区间先长度再左) LIS接上之前最优解,LCS,背包问题(01背包,完全背包,分组背包,依赖性问题) 状态压缩,树形dp 看过最好的一篇讲解动态规划的 https: 阅读全文
posted @ 2020-03-23 21:51 SuccessfulRoad 阅读 (9) 评论 (0) 编辑
摘要:详细讲解博客,推:https://www.cnblogs.com/xenny/p/9739600.html for(int i=x;i;i-=i&-i)//树状数组求前缀和s[x]; s+=c[i]; 区间修改 for(int i=x;i<=n;i+=i&-i)//a[x]增加k,c[]数组修改 c 阅读全文
posted @ 2020-03-21 15:18 SuccessfulRoad 阅读 (8) 评论 (0) 编辑
摘要:线段树,每个节点都代表一个区间,左儿子和右儿子分别是父亲的左右子区间 线段树 线段树初始化 void build(int pos,int l,int r) { if(l==r) {tree[pos]=a[l];return;} int mid=(l+r)>>1; build(lson,l,mid); 阅读全文
posted @ 2020-03-17 21:55 SuccessfulRoad 阅读 (11) 评论 (0) 编辑
摘要:题目描述 给定一个长度为n的非负整数序列A,求一个平均数最大的,长度不小于L的子段。(牛客网) 看到这道题没想到用二分,只看到了暴力~~qwq,这道题可以二分枚举平均数大小,即找>=l区间内,大于平均数的数最大,也就是在此区间内存不存在前缀和(各项减去平均数)大于零,求最大的#include<ios 阅读全文
posted @ 2020-03-06 22:53 SuccessfulRoad 阅读 (21) 评论 (0) 编辑
摘要:堆(大顶(根)堆,小顶(根)堆)是支持如下操作的动态集合:(完全二叉树表示) 插入元素:将元素插入堆中 删除堆顶:删除堆中优先级最大(最小)的元素 查询堆顶:返回堆中优先级最大(最小)的元素 //完美二叉树:每层都填满 堆还有,配对堆,斐波那契堆 大顶堆:父亲节点的值大于儿子 小顶堆:儿子大于父亲 阅读全文
posted @ 2020-02-27 22:07 SuccessfulRoad 阅读 (3) 评论 (0) 编辑
摘要:一般解决方法 根->儿子,再由儿子->根,推出根的值 基本模型: 没有上司的舞会 任意两个一起跳舞的职员层次至少相差2(关系可以看成一棵树,相邻之间不能选择即该节点的父亲和儿子,根节点没有父亲) 一般解法:用f(x)表示x子树进行了决策之后x被选择,能获得的最大权值和,g(x)表示x子树进行了决策之 阅读全文
posted @ 2020-02-26 13:37 SuccessfulRoad 阅读 (6) 评论 (0) 编辑
摘要:二分题目中通常有暗示: 最大值最小/最小值最大 (在最之间取平衡点) 最靠近某个值(类似) 最小的能满足条件的代价 ***寻找题目中具备的单调性,运用二分解决问题 聪明的质检员 https://www.luogu.org/problemnew/show/ P1314 二分+前缀和(通常区间求值)通过 阅读全文
posted @ 2020-02-23 21:17 SuccessfulRoad 阅读 (9) 评论 (0) 编辑
摘要:VIJOS 小技巧 能被2整除的数末尾:0, 2, 4, 6, 8 —— 结尾数字都被2整除 能被3整除的数:各个位数上的数字和能被3整除 能被4整除的数:后两位能被4整除 能被8整除的数:后三位能被8整除 判断一个数是否为完全平方数:完全平方数的末尾一位只可能是 —— 0, 1, 4, 5, 6, 阅读全文
posted @ 2020-02-19 22:02 SuccessfulRoad 阅读 (7) 评论 (0) 编辑