#算法随笔
文章平均质量分 67
算法蒟bye_LYF926
爱好算法和人工智能
展开
-
算法随笔——尺取法(双指针Tow Point)
引例1.题解报告2第四题https://blog.csdn.net/weixin_41568030/article/details/1202780522.题解报告3第四题https://blog.csdn.net/weixin_41568030/article/details/120318017对于这两道题,我们发现共同的特点是1.都要求取出连续的一段做最值2.都会有效枚举所有可能那么下次一看到这两个特征并且貌似不会做惹不起的样子,就试试尺取法好下面讲讲尺取法就是说规定两个.原创 2021-09-15 22:24:26 · 182 阅读 · 0 评论 -
八皇后问题
一.绪论这是一个很经典的DFS问题,适合计算机批量求解(不是给人算的),是想当年让高斯折腰的题目啊二.预备知识1.构建模型就是要求构造一种特殊的棋局,使得上面的任何两点不能同行同列同主副对角线那么转化成数学问题就是(x,y)和(i,j)中,x!=i,y!=j,x+y!=i+j,x-y!=i-j2.确定算法这道题是经典地DFS,当然BFS也可以但是很麻烦然后确定DFS要素1.边界:dep==n+1时,决策万所有情况2.单层派生逻辑 这里我们本来应该...原创 2021-09-06 23:05:01 · 135 阅读 · 0 评论 -
一些注意点
一.书写问题 1.freopen(“文件名”,“小写字母r或者w”,stdin或stdout); 2.分类讨论的ifelse 不要写太长,不要复制黏贴,尽量把能提取出来的公共信息都放在全局上一层 3.BFS和DFS以及DP的初始化还有辅助数组(VIS,桶)在多组数据的时候要清空二.思路问题 1.对于问题应该具有逆向思维 就比如要求n的最大质因子,这个时候我们只要找到一个n的最小因子,使得n/i是质数...原创 2021-09-01 22:41:38 · 92 阅读 · 0 评论 -
算法:前缀极值或后缀极值
之前我已经发布了前缀和和差分、前缀和和后缀和的例题两篇博客,说实话那个时候前缀和我也没有真正弄懂,知识感觉这种算法很好用那现在我们就把做前缀和做后缀的思想本质和变化投影讲清楚一.前缀后缀和 1.前缀后缀和:s[i]=a[1]+...a[i],a[i]+...a[j]=s[j]-s[i-1] 2.疑似前缀后缀和:root p1710题解二.前缀极值和后缀极值 1.例谈算法 2010NOIP导弹拦截这道题就是...原创 2021-08-21 13:36:12 · 346 阅读 · 0 评论 -
经典基础算法的一些精髓和注意点总结
一.搜索遍历算法 0.搜索概论 搜索,某个维度(角度)上分为两种,分别是遍历逻辑结构和遍历状态空间结构,二者都是一张图,而一个是题目给定的,一个是由题目给定所确定的 所谓状态空间,就是这个问题的询问,会分解成那些小问题,从上帝视角来看整体构成的结构 初学算法的懵懂时期,我一直弄不明白为什么一个好端端的分苹果问题,为什么是对一个树的遍历,那时候感觉树要是能看得见摸得着的数据结构,然而并不是的...原创 2021-08-18 15:13:44 · 219 阅读 · 0 评论 -
七种二分 查找法
二分查找是一种很简单且常用的算法,常用于线性查找,在10000个数里面查找一个数,用循环查找最坏的情况最坏的情况是10000,但用二分就可以降到logn的时间代价...原创 2020-03-01 16:25:07 · 311 阅读 · 0 评论 -
关于upper‘_bound 和 lower_bound
刚复习了最长不下降子序列,发现了有种解法用了upper_bound 和 lower_bound,那么,我就来普及一下这两个函数。首先,包含他们的头文件是bits/stdc++.h(实际上是algorithm)。首先先剧透一下二分算法。猛戳这里。upper_bound()和lower_bound()函数在刚刚的二分中提到了,upper_bound是第一个大于第三个参数的数在给定地址中...原创 2020-03-01 16:25:57 · 446 阅读 · 0 评论 -
前缀和 和差分
前缀和,又称 和数组,用于求解获取某一部分连续区间的问题。算法实现:定义一个和数组d,接着输入过后,用和数组中的第i个元素表示前i个数的和,递推式:d[i]=d[i-1]+a[i],想要获取其中从x 到y的连续元素和, 只需要使用o(1)公式d[y+1]-d[x]即可。算法原理:求和时 使用了简单的容斥原理,如下图所示 ...原创 2020-10-08 16:30:20 · 338 阅读 · 0 评论 -
计数方法——前、后缀和计数
题目大意:给定一个字符串,只由NOI 组成,问其中“NOI” 子串(可以不连续) 有多少个?例如:NOIOI,就有子串NOI 3个。样例输入:NOIOI样例输出:3解析:这道题的大致思路是寻找O字符,找到了,就寻找该O左边的N,右边的I,接着相乘加入ans就行了如果你是顺着标题点进来的,那么,下面才是你想要的东西如何寻找O前面的N,后面的I?方法一:暴力枚举,从一到addO,找N,从addO到len,找I时间效率:o(n),但是你还要找O,所以整体时间复杂度为:o(n²).原创 2020-10-10 12:09:53 · 383 阅读 · 0 评论