摘要: lis 即最长上升子序列 可以用dp求解 复杂度O(n^2) 我们考虑优化 用树状数组(或者线段树) 树状数组维护区间最大值 (省去原始O(n^2)算法中的查找) 这样还能求出以i结尾的lis 二分只能求出当前序列的lis (许多题里要求lis个数什么的qwq 总之比二分方便 除了码量长) 还有一个 阅读全文
posted @ 2019-10-14 13:16 DUO_JIaMInG 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 一般求解方法 当然c++stl库里有一个函数名叫unique unique本身是用于去重 正是离散化所需要的 阅读全文
posted @ 2019-10-14 12:35 DUO_JIaMInG 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 发现自己dp学的非常不好 所以开始练习dp (当然从最简单的开始啦) 题目传送门 为什么这道题是个紫题??分明代码很简单(对于多数线段树树状数组的码量来看) 个人认为思路有点难想出来(我就是看了题解才会的) 步入正题 题目描述每次插入一个数k到xk位置(0<k<=n) 那么就是一个动态的啦 插入一个 阅读全文
posted @ 2019-10-13 20:32 DUO_JIaMInG 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 传送门 然而考试的时候并没有看出来是线性dp 那么复习一下线性dp lis问题 LIS 最长上升子序列 可以用dp求解 复杂度O(n^2) 定义dp[i] 表示a[i]为结尾的“最长上升子序列”的长度 转移方程 dp[i]=max{dp[j]+1} (0<=j<i,a[j]<a[i]) 边界也很好理 阅读全文
posted @ 2019-10-13 20:08 DUO_JIaMInG 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 主体还是求lca啦 看代码 阅读全文
posted @ 2019-10-13 14:28 DUO_JIaMInG 阅读(127) 评论(0) 推荐(0) 编辑
摘要: (心态爆炸。。。) 本来可以拿到120,因为自己忘记改输出语句,最终又爆零了。。。 言归正传,dalaolsc非常主动并且认真的给我讲懂了T2! T1 纪中的题解写的hin好了,所以(懒惰的)我直接放题解 具体介绍一下矩阵乘法: 两个矩阵若满足第一个矩阵的列等于第二个矩阵的行数(形如m*n和n*p) 阅读全文
posted @ 2019-10-13 14:20 DUO_JIaMInG 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 因为bfs一直不会的缘故,所以今天要认真做几道题练习一下qwq P1032 字串变换 对于这道题很明显就是bfs 可以搜索顺便记录步数 注意要判重 可以用map 输入也要注意 (代码是抄的 因为我太弱了还不熟悉) 阅读全文
posted @ 2019-10-12 15:51 DUO_JIaMInG 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-11 16:12 DUO_JIaMInG 阅读(81) 评论(1) 推荐(0) 编辑
摘要: 问题 F: 祖孙询问 时间限制: 1 Sec 内存限制: 128 MB提交: 13 解决: 6 难度:提高+/省选-[提交] [状态] [讨论版] [命题人:xcgzjia] 问题 F: 祖孙询问 题目描述 输入 输出 样例输入 Copy 10 234 -1 12 234 13 234 14 234 阅读全文
posted @ 2019-08-04 17:22 DUO_JIaMInG 阅读(208) 评论(0) 推荐(0) 编辑
摘要: lca指的是树上两点的最近公共祖先,也就是说,在这两点的所有祖先中深度最大的就是它们的最近公共祖先。 求解lca的方法一般情况下有三种:向上标记法,树上倍增法,tarjan 此处只介绍前两种方法(因为不会tarjan) 向上标记法 假定一棵树有8个节点,如图所示, lca(4,7)=1 例如求4处有 阅读全文
posted @ 2019-08-04 17:12 DUO_JIaMInG 阅读(168) 评论(0) 推荐(0) 编辑