NOIP's 算法
来源:互联网 发布:python math 大小比较 编辑:程序博客网 时间:2024/05/24 05:00
NOI、NOIP算法考前总结,带*为NOIP级别的比赛中涉及到的几率不大的算法
一、基础算法
一般都是前几题,会比较简单
1、模拟 注意要写准确,注意细节,简单的模拟一定要AC,复杂的模拟要先用手写清楚再开始遍 例如noip2011 mayan
2、搜索(枚举) 如dfs,bfs,同样简单的尽量AC。有些搜索需要剪枝,尽量刨去不会出现的答案
3、贪心 重点在证明,如果实在没有好的方法又不会证明可以用来骗骗分 例如noip2011 bus
4*、矩阵 关键是构造出正确的矩阵,实现很简单,范围大时要用快速幂
二、动态规划
一般每年必考至少一道
做DP题时,最好先在纸上写好状态转移方程和边界条件
1、背包 分为01背包,部分背包,完全背包等。例如 采药,金明的预算方案等
2、线性DP 这例如 添加号,ioi2003方块消除
3、坐标型DP 例如 noi99棋盘分割
4、区间型DP 例如 noip2005能量项链,noip2008传球游戏
5、树形DP 例如 皇宫看守,noi2012 park,poi-6 tro,poj1947
6、*状压DP 本质就是用一个数字表示一个状态,一般有最小表示法和括号表示法。 例如noi2001炮兵阵地,noi2007生成树计数,SCOI2005互不侵犯的king
7、*斜率优化DP 这类题需要手推公式,然后找到单调性。 例如HNOI2008玩具装箱,APIO2010特别行动队
三、图论
这类题种类非常多
1、最短路 必会的算法,spfa,dijkstra,dijkstra注意用堆优化,尽量用dij+heap而不是spfa。 这类题到处都是
2、最小生成树 稀疏图用kruskal,稠密图用prim,prim也可以堆优化
3、LCA 会一种求LCA的方法就够了,比如Tarjan的离线算法,时间复杂度是O(n+Q)。 例如BZOJ1776
4、强连通分量 Tarjan算法。 例如BZOJ1051
5、欧拉路的问题 例如 sgu101
6、二分图最大匹配 重点是建模。例如BZOJ1059,BZOJ1433,BZOJ1562
7、*最小费用最大流 重点同样是建模。例如noi2012delicacy,sgu185
四、数据结构
NOIP涉及的较少
1、 栈 队列 堆 都是基本算法,必须掌握
2、 并查集 例如 亲戚,noi食物链,BZOJ1015
3、 字典树 快速查找到字符串的方法,一般不单独出现,用来优化其它算法
4、 线段树 很常用的数据结构。例如 BZOJ1798 ,BZOJ1651,BZOJ1230,BZOJ1858
5、 *平衡树 用来维护二叉查找树的。 例如BZOJ1208,BZOJ1503,BZOJ1588
6、 *可并堆(斜堆、左偏树),有时启发式合并也不足以解决问题就要用它了。 例如APIO2012派遣
7、 *伸展树 用来维护序列的增加一个序列,删除一个序列,翻转一个序列等操作。 例如NOI2005序列维护,NOI2003editor
8、 *划分树 求区间第K大 例如poj2104
9、 *AC自动机,多串匹配的经典算法。例如noi2011阿狸的打字机
10、 *二维线段树 类似一维线段树,只不过每个节点存的是一颗线段树,实际就是线段树套线段树。例如noi2012 chess
- NOIP's 算法
- NOIP实用算法 目录
- NOIP算法解析
- NOIP中的暴力算法
- NOIP 算法总结
- NOIP 算法小结
- NOIP实用算法 3.搜索
- 【noip】解方程 秦九韶算法
- noip数据结构与算法 序章
- NOIP 初赛复习 : 排序算法!
- NOIP前 基础算法模板
- 算法S
- NOIP实用算法 4.贪心方法
- 话说NOIP一些会考到的算法
- 话说NOIP一些会考到的算法
- 冲刺NOIP复习,算法知识点总结
- 【NOIP practice】BSOJ2264 火炬 基础算法+思考题
- 话说NOIP一些会考到的算法
- 把悲伤留给自己:依依搜集伤感空间日志
- oracle开发中序列的使用
- C语言运算符优先级
- 男子婚内强奸被判刑 律师称分居丈妇强奸属犯法
- WINDOWS平台下VLC的编译
- NOIP's 算法
- Hadoop 简介 - 福布斯:你不得不了解的大数据工具
- jQuery对select、radio和checkbox的操作 .
- excel导入sql数据库
- 测试管理经验浅谈
- js java,验证字符串是否为数字
- 简单解决 Microsoft office 打开自动关闭
- 男子虚构身份骗同窗网敌百余万
- windows平台下vlc编译