暑假算法学习
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 · 110 阅读 · 0 评论 -
幸福主席树(入门+题目推荐+模板思路)P3919/区间第K大/P3567/P2468/BZOJ5343
P3919 【模板】可持久化数组https://blog.csdn.net/woshinannan741/article/details/53012682P3919 【模板】可持久化数组题目链接:https://www.luogu.org/problem/P3919https://blog.csdn.net/SSL_ZYC/article/details/88362417非常详细简洁的...原创 2019-07-27 23:50:25 · 230 阅读 · 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 · 216 阅读 · 0 评论 -
POJ Filptile
开关问题解析。在开关问题学习中学到了。如何处理开关问题。比如POJ 3276中一行决定如何开关。(当区间长度确定)那么就认为第一列只能由第二列改变方向(当他需要改变时)所以就从头往后遍历知道所有都好,最后检查一下是否满足。这个是我之前会的但是我不会的是如何处理着区间。原本是直接把正反改变一次改变以区间这样复杂度就太大了。现在学到一个新的办法。当判断当前节点node1是否反转的时候,前面某个节...原创 2019-08-06 21:25:25 · 179 阅读 · 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 · 560 阅读 · 0 评论 -
菜鸟的哈希(哈希和二维哈希模板入门)
首先上末班一维哈希//hash一般用来解决字符串判重/字符串匹配问题//遇见不定长问题可通过二分+hash降低复杂度//遇见定长字符串问题可通过尺取+hash来降低复杂度//二维hash的时候尺取方法就是把之前不需要的都变为0再加上当前行,将匹配字符串整体下移,来验证hash值是否相等//---------------------------------单Hash-----------...原创 2019-08-07 20:47:46 · 396 阅读 · 0 评论 -
区间dp(括号匹配末班)
O - Treats for the CowsO - Treats for the Cows入门题:O - Treats for the Cows 题意:在一个长度为n的区间里,你可以在两端(左端或者右端)取出一个数,这个数乘以他是第几次取出来的。求和的最大值。思路:一眼贪心模拟简单题。后来发现不行一旦一个数字很大就没法贪心了。给个数据5908012100所以就想到d...原创 2019-08-22 20:48:59 · 182 阅读 · 0 评论