时隔一年,相比去年一无所知的自己,学到了不少东西,虽然还是很弱,但也颇有收获【学会了打板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. oss上传文件0字节

    最近使用oss上传文件,不同项目中使用的版本也不同,之前的都能正常上传,最近因需要添加ObjectMetaData属性,扩展了一个方法,发现上传的文件始终是0字节的,最终跟源码发现conntentLe ...

  2. windows环境下apache-apollo服务器搭建及发布订阅测试

    查证了一些资料之后,发现 apache-apollo服务器使用的人还是挺多的,资料也比较齐全,所以直接选择 apache-apollo了,具体性能如何,先用起来再说吧: 1.下载 apache-apo ...

  3. Query类型_JDBC的方法_JAVA方法_Loadrunner脚本

    数据库查询压力测试脚本 jdbc_java_查询类型接口测试 package com.test; import java.sql.Connection; import java.sql.DriverM ...

  4. Viper--方便好用的Golang 配置库

    前言 本文主要是为读者介绍一个轻便好用的Golang配置库viper 正文 viper 的功能   viper 支持以下功能:   1. 支持Yaml.Json. TOML.HCL 等格式的配置   ...

  5. libCurl 初步认识 - cur easy

    cur easy接口简洁明了,主接口4个,辅接口5个. 主接口 初始化 + 配参数 + 执行 + 销毁 初始化 CURL* curl_easy_init() 获得CURL句柄,返回值需要判空. 配参数 ...

  6. 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音

    <Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...

  7. golang笔记1

    golang笔记1 go代码是用包来组织的,每个包有一个或多个go文件组成,这些go文件文件放在一个文件夹中 每个源文件开始都用一个package声明,指明本源文件属于哪个包 pakage声明后紧跟这 ...

  8. IT视频课程集

    马哥Linux培训视频课程:http://pan.baidu.com/s/1pJwk7dp Oracle.大数据系列课程:http://pan.baidu.com/s/1bnng3yZ 天善智能BI培 ...

  9. ES6的新特性(18)——async 函数

    async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generato ...

  10. 关于jsonp跨域的 实现

    1.实现原理    1.把接口写在 script标签的src 中 这个接口就可以访问(不会存在跨域问题  因为接口在浏览器地址栏是可以访问的  会返回json字符串); 2.直接写不可以  因为正常情 ...