NOIP算法总结与复习】的更多相关文章

NOIP算法总结与复习 (看了看李总的蓝皮书,收获颇多,记下此文,以明志--) (一)数论 1.最大公约数,最小公倍数 2.筛法球素数 3.mod规律公式 4.排列组合数,错排 5.Catalan数 6.康托展开 7.负进制 8.中位数的应用 9.位运算 (二)高精度算法 1.朴素加法减法 2.亿进制加法减法 3.乘法 4.除法 5.亿进制读入处理 6.综合运用 (三)排序算法 1.冒泡 2.快排 3.堆排 4.归并 (四)DP 1.概念 2.解题步骤 3.背包类dp 4.线性dp 5.区间动态…
联赛除去今天刚好只有一个星期了,最后一个星期也很关键,要吃好睡好保持心情愉悦.当然也免不了最后的复习计划. 首先是模板,之前还有很多模板没有复习到,这些东西是一定要落实到位的. 每天往后面写一点...一定要写完...都是很基础的板子了... [x] 11.3 [模板]KMP字符串匹配 [ ] 11.3 [模板]左偏树(可并堆) [x] 11.3 [模板]最近公共祖先(LCA) [x] 11.3 [模板]最长公共子序列 [x] 11.4 [模板]网络最大流 [x] 11.4 [模板]最小费用最大流…
前言 离NOIP还有一个星期,匆忙的把寒假整理的算法补充完善,看着当时的整理觉得那时还年少.第二页贴了几张从贴吧里找来的图片,看着就很热血的.旁边的同学都劝我不要再放PASCAL啊什么的了,毕竟我们的下一级直接学C++.即便我本人对C++也是赞赏有加,不过PASCAL作为梦的开始终究不能忘记.不像机房中其余的OIERS,我以后并不想学计算机类的专业.当年来学这个竞赛就是为了兴趣,感受计算机之美的.经过时迁,计划赶不上变化,现在尚处于迷茫之中,也很难说当时做的决定是对是错.然而我一直坚信迷茫的时候…
不是很noip的知识点就不写了. dij什么的太easy就不写了. 缩点 注意\(Tarjan\)在缩边双和求强联通分量时候的区别. 一个要判断是否在栈内一个不要. 最后\(topsort\)来\(dp\),或者记忆化搜索,但是一定要记得初值为\(-1\). 考虑图不联通. 负环 考虑图不联通. 一开始\(dis=0\),判断最短路长度大于\(n\)会好一些. \(dfs\)型\(spfa\)是指数级的. ST表 注意是\(i\)到\(i+2^k-1\). 所以预处理的时候不要减1,因为已经减过…
(一)数论 1.最大公约数,最小公倍数 2.筛法求素数 3.mod规律公式 4.排列组合数,错排 5.Catalan数 6.康托展开 7.负进制 8.中位数的应用 9.位运算 (二)高精度算法 1.朴素加法减法 2.亿进制加法减法 3.乘法 4.除法 5.亿进制读入处理 6.综合运用 (三)排序算法 1.冒泡 2.快排 3.堆排 4.归并 (四)DP 1.概念 2.解题步骤 3.背包类dp 4.线性dp 5.区间动态规划 6.坐标型动态规划(规则类dp) 7.资源分配型动态规划 8.树型动态规划…
距离NOIP还有25天 可以去放弃一些巨难得题目去搞一些模板了 -------在校老师的原话 一·快排 虽然可以手打,最好用STL,里面有很多优化,会快很多 #include<iostream> #include<algorithm> using namespace std; struct node { int x,y; }a[maxn]; bool cmp(node a,node b) { return a.x<b.x; } int main() { sort(a+,a++…
Hash: #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> #define REP(i,k,n) for(long long i=k;i<=n;i++) #define in(a) a=read() using namespace std; inline long long read(){ ,f=…
24种NOIp常用的算法 https://blog.csdn.net/weixin_40676873/article/details/81166139 NOIP 算法总结(来自 啊哈磊的专栏) https://blog.csdn.net/lanshuizhiyun/article/details/77337453 NOIP算法总结 https://www.cnblogs.com/yangqingli/p/4925011.html…
这次来复习一下Dijkstra的双栈算术表达式求值算法,其实这就是一个计算器的实现,但是这里用到了不一样的算法,同时复习了栈. 主体思想就是将每次输入的字符和数字分别存储在两个栈中.每遇到一个单次结束符号(就是")"),边将运算符号栈中的字符弹出一个,在将数字栈中的数字弹出两个,并进行运算,将最后的结果在压入数字栈中.在进行下次的运算.以此类推. 整体的算法思路比较清晰,但是算法的实现有一些地方不太如意,这些问题下面在说.下面粘贴代码. import java.util.Scanner…
0 为什么写本文 一方面对经典排序算法冒泡排序进行复习,另一方面通过实际应用来检验python基础知识的掌握情况,包括range函数.len函数.for循环.if语句.函数定义与调用.列表的排序等知识点.在实践中加深理解,达到学以致用.用以促学.学用相长的目的. 1 什么是冒泡排序 冒泡排序的基本思想是,将需要排序的元素看作是一个个"气泡",最小的"气泡"最快浮出水面,排在前面.较小的"气泡"排在第二个位置,依次类推.冒泡排序需要对数列循环若干次…