时隔一年,相比去年一无所知的自己,学到了不少东西,虽然还是很弱,但也颇有收获【学会了打板QAQ】

现在是2017.11.9   21:10,NOIP2017的前两天晚上,明天就要出发,做最后的总结

NOIP考的算法不如省选、NOI广,但也不少,而更注重思维量【本蒟蒻思维就很不好】

总的来说有以下:

1、模拟

2、搜索

3、二分、贪心、倍增等算法思想

4、动态规划

5、图论

6、数论、数学

7、数据结构

模拟

模拟就没什么好说的吧,按照题目所说的去做,但要非常注意的就是考虑周全,尤其是要分类讨论的模拟,这个时候最好先离开键盘,在草稿纸上先理一遍,确定严谨性

搜索

搜索作为在OI中一个极其重要的算法,应用最广泛。
搜索基于枚举的思想,逐个枚举检查答案
搜索可以是一道题的正解,也可以作为很多题的对拍【骗分。。】
总的来说有以下:

DFS

BFS

A*启发式搜索

双向BFS【相遇】

二分 与 贪心

二分

二分通常用来解决最值问题,尤其是最大值最小、最小值最大这类问题
但在确定二分之前,我们必须检验二分对象是否满足二分性质:
1、我们一般对答案二分
2、对于一个答案,我们能有效率地检验是否可行
3、【最重要】答案满足单调性,即k满足条件,比k大或比k小都一定满足
二分通常可以用以替代枚举【O(n) -> O(logn)】
二分代码主要有两种:
求最大值:
int L = 1,R = 1000,mid;
while (L < R){
mid = L + R + 1 >> 1;
if (check(mid)) L = mid;
else R = mid - 1;
}
求最小值:
int L = 1,R = 1000,mid;
while (L < R){
mid = L + R >> 1;
if (check(mid)) R = mid;
else L = mid + 1;
}
还有一种是求最接近某个值的二分,这时候大于就给r,小于就给l,等于就是答案,不等于退出时l,r都检查一下

贪心

贪心,顾名思义,就是只考虑当前最优
贪心能解决的问题一定要满足最优子结构,就是一个问题分成多个子问题,主问题的最优解 等于 子问题的最优解之和

动态规划

背包:

01背包、完全背包、分组背包、混合背包、多重背包【二进制优化】、有依赖的背包、满载背包、背包方案

区间dp:

枚举断点O(n^3)

树上dp

状压dp:

用二进制表示集合作为状态进行转移
适用n<=20的数据

LIS、LCS

LIS有nlogn的二分优化算法

以及其他各种dp

图论

最短路

dijkstra

spfa

bell-manford

floyd

生成树kruskal

tarjan强联通分量缩点

拓扑

欧拉回路

【什么网络流应该不考吧。。】

数论、数学

同余性质

gcd、exgcd扩欧

费马小定理【指数的同余】

线性筛

欧拉phi函数

      φ(n) = n * (1 - 1/p1) * (1 - 1/p2) * (1 - 1/p3) ...... * (1 - 1/pk)
      小于n与n互质的个数

快速幂

组合数

    C(n,m) = n! / (m! * (n - m)!)
    计算方式:O(n)单算,O(n^2)递推,C(n,k)的和 = 2 ^ n【k∈[0,n]】,二项式定理、杨辉三角

基本计数原理

加法原理、乘法原理、容斥原理

数列

    斐波那契数列f[n] = f[n-1] + f[n - 2]
   1、1、2、3、5、8、13、21、37、58、95......
  卡特兰数  f[n] = f[n - 1] * (4 * n - 2) / (n + 1)
   1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786......

乘法逆元

    一般: ax≡1 (mod p)
   a,p互质: x = a^(p-2)
   递推:v[i] = -(p/i) * v[p % i]

数据结构

基本数据结构

   队列、栈、链表

并查集

    用来解决集合的合并与查找
  特殊:维护到父节点的路径长

树状数组

线段树

     一般线段树维护区间信息、主席树维护历史版本

二叉堆

二叉查找树

     splay什么的

查分数组

     修改完才查询的最快方法

KMP

     字符串匹配
   next数组意义:前一个位置的后缀前缀最长相同长度

trie树

    也叫字典树,高效查找【什么AC自动机应该不考吧。。。】

总的来说

复赛考的知识点不算广,但思维量考察是很大的,尤其是二分、动归这样精巧的思想,需要我们深入的思考以及细心地分析,明天的考试要静下心,认真考虑细节,就好像手里没有键盘,先想清楚细节再动手,切不可浮躁。
这次的比赛向往了很久,期待了很久,紧张了很久,遐想了很多,也很拼,从一个什么都不会的蒟蒻变成了至少有了些知识储备拿得出手的蒟蒻【= =、】,只愿风平浪静,考试顺利。
鲲鹏展翅翼向天,直上云霄九万里
乘风破浪无所惧,不圆夙愿誓不归
NOIP2017 RP++
         

NOIP2017 考前汇总的更多相关文章

  1. noip2017考前整理(未完)

    快考试了,把我以前写过的题回顾一下.Noip2007 树网的核:floyd,推出性质,暴力.Noip2008 笨小猴:模拟Noip2008 火柴棒等式:枚举Noip2008 传纸条:棋盘dpNoip2 ...

  2. 2017.11.7~8模拟测试总结---暨NOIP2017考前对策

    最后两天了,第三天就是NOIP2017--Day1了. 刚刚考完了这个学期从开学以来的最后一场模拟赛了.首先要对于这场模拟赛做一次深刻的反思. 考完才猛地惊叹这是最后一场模拟赛了,然而题目并不难,也保 ...

  3. 2017.11.8 Noip2017 考前模拟赛

    ----------------------------------T1---------------------------------- ——>足球联赛 题目描述 巴蜀中学新一季的足球联赛开 ...

  4. 2017.11.7 Noip2017 考前模拟赛

    ----------------------------------T1---------------------------------- ——>数学老师的报复 题目描述 11 班数学大佬 Y ...

  5. noip2017考前基础复习——数论数学

    ·最大公约数 gcd 辗转相除法  gcd(a,b)=gcd(b,a%b) int gcd(int x,int y){ ) return x; return gcd(y,x%y); } 效率O(log ...

  6. NOIP2017 国庆郑州集训知识梳理汇总

    第一天 基础算法&&数学 day1难度测试 如果要用一个词来形容上午的测试,那真是体无完肤.  成绩: 题目 成绩 评价 T1 50 一般 T2 10 大失所望 T3 0 差 基础算法 ...

  7. 清北·NOIP2017济南考前冲刺班 DAY1 morning

    立方数(cubic) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数 ...

  8. 【HiJ1m】在NOIP2017前写过的有用的东西汇总

    http://www.cnblogs.com/Elfish/p/7544623.html 高级树状数组 http://www.cnblogs.com/Elfish/p/7554420.html BST ...

  9. [SinGuLaRiTy] NOIP2017 提高组

    [SinGuLaRiTy-1048] Copyright (c) SinGuLaRiTy 2018. All Rights Reserved. NOIP2017过了这么久,现在2018了才找到寒假这么 ...

随机推荐

  1. PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理

    只要有人用了: select t.* from 表名  t where 字段=xxx  for update 而不是: select t.rowid,t.* from 表名  t where 字段=x ...

  2. C++自学第二课:对象和类的概念

    既然是C++,比C语言多了最重要的概念:面向对象. 面向对象?对象是什么?Girlfriend? 我天天面向她也没学会C++. 我觉得对象就是有统一特征的一类编程目标. 打个比方说墙上有个开关,我一按 ...

  3. 学习HTML 第二节.HTML头部

    HTML为什么要有个头部?还不太明白,可能是一些要提前声明的东西吧.先看看有什么内容吧. 可以添加在头部区域的元素标签为: <title>标题,这个我们知道了: <meta>使 ...

  4. 该用哪个:Redis与Memcached之间如何选择呢?

    华为云分布式缓存Redis5.0和Memcached都是华为云DCS的核心产品. 那么在不同的使用场景之下,如何选择Redis5.0和Memcached呢? 就由小编为大家进行详细的数据对比分析吧 R ...

  5. 2018-2019-20172329 《Java软件结构与数据结构》第四周学习总结

    2018-2019-20172329 <Java软件结构与数据结构>第四周学习总结 经过这样一个国庆节的假期,心中只有一个想法,这个国庆假期放的,不如不放呢!! 教材学习内容总结 < ...

  6. ubuntu安装和查看已安装软件

    说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法. 一.U ...

  7. CS小分队第一阶段冲刺站立会议(5月14日)

    昨日成果:为抽号计时器添加了第一类抽号,基本实现界面,功能出现了一些错误 遇到问题:我预想通过timer控件来实现随机抽号而拜托随机生成数,但是出现了只有个位随机滚动,其他位数不动的现象,我预计是数值 ...

  8. 浅谈Java变量的初始化顺序详解

    规则1(无继承情况下):对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器证明代码: 复制代码 代码如下: p ...

  9. 0527 SCRUM团队项目7.0

    Sprint回顾 让我们一次比一次做得更好.   1.回顾组织 主题:“我们怎样才能在下个sprint中做的更好?” 时间:设定为1至2个小时. 参与者:整个团队. 场所:能够在不受干扰的情况下讨论. ...

  10. mnist测试

    第一步:进入caffe目录 第二步:获取mnist数据集 ./data/mnist/get_mnist.sh 第三步:创建lmdb ./examples/mnist/create_mnist.sh 第 ...