暑假算法学习
weixin_43331783
/p/px5xQRGVPD/
展开
-
暑假算法学习之rmq
作用:查询区间最值。 简单讲:就是预处理把两个两个最小值求出来再求四个四个再求把以此类推。查询类似。 板子 预处理(内外层循环不可以换) void rmq_init() { for(int i=1;i<=N;i++) dp[i][0]=arr[i];//初始化 for(int j=1;(1<<j)<=N;j++) for(in...原创 2019-07-12 14:48:56 · 81 阅读 · 0 评论 -
幸福主席树(入门+题目推荐+模板思路)P3919/区间第K大/P3567/P2468/BZOJ5343
P3919 【模板】可持久化数组 https://blog.csdn.net/woshinannan741/article/details/53012682 P3919 【模板】可持久化数组 题目链接:https://www.luogu.org/problem/P3919 https://blog.csdn.net/SSL_ZYC/article/details/88362417非常详细简洁的...原创 2019-07-27 23:50:25 · 135 阅读 · 0 评论 -
离散化入门模板(线段树离散)HDU - 3333、CodeForces - 540E
C - Infinite Inversions CodeForces - 540Ehttps://codeforces.com/problemset/problem/540/E 代码来源:https://blog.csdn.net/whai362/article/details/48827207 树状数组入门:https://blog.csdn.net/Small_Orange_glory/art...原创 2019-07-31 12:13:24 · 208 阅读 · 0 评论 -
POJ Filptile
开关问题解析。 在开关问题学习中学到了。如何处理开关问题。比如POJ 3276中一行决定如何开关。(当区间长度确定)那么就认为第一列只能由第二列改变方向(当他需要改变时)所以就从头往后遍历知道所有都好,最后检查一下是否满足。这个是我之前会的但是我不会的是如何处理着区间。原本是直接把正反改变一次改变以区间这样复杂度就太大了。现在学到一个新的办法。 当判断当前节点node1是否反转的时候,前面某个节...原创 2019-08-06 21:25:25 · 143 阅读 · 0 评论 -
开始dp之路
开始系统刷dp啦。先从kuangbin开始; dp第一步:白书 背包问题 最长公共子序列 多重部分和 最长上升子序列 有关计数问题的dp 白书 背包问题 最长公共子序列 多重部分和 最长上升子序列 n2写法(dp[i]=max(1,dp[j]+1)当j在这里插入代码片 nlogn写法(dp[i]=min(a[j],dp[i])当a[j]>dp[i-1]||i=0表示长度为末尾最小...原创 2019-08-09 16:27:07 · 376 阅读 · 0 评论 -
菜鸟的哈希(哈希和二维哈希模板入门)
首先上末班 一维哈希 //hash一般用来解决字符串判重/字符串匹配问题 //遇见不定长问题可通过二分+hash降低复杂度 //遇见定长字符串问题可通过尺取+hash来降低复杂度 //二维hash的时候尺取方法就是把之前不需要的都变为0再加上当前行,将匹配字符串整体下移,来验证hash值是否相等 //---------------------------------单Hash-----------...原创 2019-08-07 20:47:46 · 377 阅读 · 0 评论 -
区间dp(括号匹配末班)
O - Treats for the Cows O - Treats for the Cows 入门题: O - Treats for the Cows 题意:在一个长度为n的区间里,你可以在两端(左端或者右端)取出一个数,这个数乘以他是第几次取出来的。求和的最大值。 思路:一眼贪心模拟简单题。后来发现不行一旦一个数字很大就没法贪心了。给个数据 5 90 80 1 2 100 所以就想到d...原创 2019-08-22 20:48:59 · 139 阅读 · 0 评论