NOIP前的模板复习和注意事项

联赛除去今天刚好只有一个星期了,最后一个星期也很关键,要吃好睡好保持心情愉悦.当然也免不了最后的复习计划.
首先是模板,之前还有很多模板没有复习到,这些东西是一定要落实到位的.
每天往后面写一点...一定要写完...都是很基础的板子了...
- [x]
11.3【模板】KMP字符串匹配 - [ ]
11.3【模板】左偏树(可并堆) - [x]
11.3【模板】最近公共祖先(LCA) - [x]
11.3【模板】最长公共子序列 - [x]
11.4【模板】网络最大流 - [x]
11.4【模板】最小费用最大流 - [ ]
11.4【模板】扩展中国剩余定理(EXCRT) - [ ]
11.4【模板】单源最短路径(标准版) - [x]
11.5【模板】可持久化线段树 (主席树) - [x]
11.5splay - [ ]
11.5树剖 - [x]
11.5【模板】AC自动机(简单版) - [x]
11.6【模板】AC自动机(加强版) - [ ]
11.6【模板】负环 - [ ]
11.6【模板】缩点 - [ ]
11.6【模板】割点(割顶) - [ ]
11.7【模板】ST表 - [x]
11.7【模板】manacher算法 - [ ]
11.7【模板】线性基 - [ ]
11.7【模板】【模板】乘法逆元 - [ ]
11.8【模板】Treap - [ ]
11.9【模板】高斯消元法 - [ ]
11.9【模板】字符串哈希 - [ ]
11.10【模板】多项式乘法(FFT) - [ ]
11.10【模板】三维偏序(陌上花开) - [ ]
11.10【模板】Link Cut Tree (动态树) - [ ] 各种线性筛
再有就是配置,这几天就用noip考场配置了.
(global-set-key [f9] 'compile-file)
(global-set-key (kbd "C-a") 'mark-whole-buffer)
(global-set-key (kbd "C-z") 'undo)
(global-set-key (kbd "RET") 'newline-and-indent)
(defun compile-file()(interactive)
(compile(format "g++ -o %s %s -lm -Wall"
(file-name-sans-extension(buffer-name))(buffer-name))))
(setq kill-ring-max 200)
(setq default-cursor-type 'bar)
(setq default-tab-width 4)
(setq c-default-style "awk")
(set-background-color "gray15")
(set-foreground-color "gray")
;;好长啊...
;;没有透明好丑啊...
还有真题,对每一年的真题都回顾一下,把握一下每道题的难度.
这个工作一定是要做的.
还有注意事项:
数组开大了或者开小了,空间一定要算好,最好留30mb防止意外,卡着空间是一件很危险的事情.还有注意诸如离散化,链式前向星或者一些要开两倍的数组的一定要注意.
要开longlong的一定开longlong,注意可能题目给你的数字不会炸int,但是结果很有可能爆longlong,空间时间允许尽量都开longlong
n和m写反之类的事情不能再发生了.还有定义k的为某个输入的变量的时候就不能用k作为循环变量了.
很多个if一定要搞清楚逻辑关系,最好几个if并列都用else
多组数据的时候memset一个很大很大的数组,可能会TLE.
在bfs的时候防止越到负界,应该先判负界再调用数组.
看题要注意题目是1下标开始还是0下标,是0下标输入的时候一定要加一,输出的时候也一定要修改.
noip考试是不开o2的,所以慎用stl.
最后确保程序没什么大问题测大数据的时候,不开O2测一次,开O2测一次,以防不开O2数组越界不会报错,最好不要单纯通过大数据来判断有没有越界.
检查输入输出文件有没有出错,删掉注释的斜线之后要编译确保无误,交卷之前5分钟不答题.文件名有没有一一对应,字母有没有输错,文件夹和cpp名字有没有写错,是否子文件夹内外都有一份程序.
读入量过大的时候自己写一份读入优化,确保要读longlong的时候读入优化里写得longlong,有负数的时候读入优化里判了负数,读入优化里的x,sign一定要赋初值.
检查所有在函数里定义的变量有没有赋初值,多组数据是否还有变量没有清空.
注意观察题面里是不是有负边权,是不是有重边或者自环,有的话一定要严谨地分析一下对自己的程序有没有影响.
写完一道题之后自己造数据hack自己(特别是贪心),发现错误不要慌乱,想办法补救,确保写了的分都拿到.
程序出现段错误的时候,用cerr或者cout<<endl输出中间变量判断在什么地方RE的.
最好写一个函数就检查一下有没有写错,写完一个检查一个花费的时间远比写完全部再来调试要轻松得多.
一道题最好写完,或者完成一档部分分再写下一题,不要觉得这题我可能是对的,可能可以写出来.不要以为你之后会有时间写完你之前没写完的代码,考试的时候越开始的时候越清醒,开始写不出来的东西到之后很可能也写不出来,做好这题只有这么多分的心理准备.
打代码的时候注意力一定高度集中在构思程序上,看题和推倒的时候一定高度集中在构思算法上,不要被其他因素所干扰,不要想考完之后会发生的事情,不要总是自己和自己对话.
调试完代码之后一定要删掉或者注释掉自己的调试语句,为了调试方便修改的循环范围,输出范围,断点,一律也要改过来.
连个小于1e9的数字相乘一定要在之前乘以1ll,有的时候有可能忘记.要取模的地方一定要仔细检查有没有取模,加法之后取模常数太大可以写手写取模.
dp转移的时候注意边界条件,第0行0列的数据往往容易忽视,i从什么开始到什么,j从什么开始到什么,k从什么开始到什么结束,这些都是马虎不得的.还有转移顺序,有的时候错误的顺序也可以过样例.
noiLinux的默认密码是123456,防止像去年一样开考打不开电脑.
配置打错的时候一定不能慌乱,不能上战场就乱了阵脚,把调背景颜色的那句话移动位置,找出配置出错的一行.哪一行错了,之后的配置就会跟着不出来,可以通过这种方法查错,5min一定要搞定(考前配置要默十遍).
最好少喝水,上厕所容易分神,特别是排队的时候会关注前一个人有没有回来.有感觉了马上举手,不要等到憋的时候再举手,通常没有十分钟是轮不到的.
早上吃东西不要吃太冷的,也不要吃太多,防止拉肚子什么的.
注意一些库里的关键字,一定避免使用,即使没有调用也不使用.,以防意外.
如果通过达标找规律发现了规律,一定要想想是不是小数据也是对的.
涉及到double比较大小判断是否为0的时候设eps,涉及到斜率的时候要特判斜率不存在的情况,如果斜率非常大或者非常小,很容易掉精度.所以还是尽量避免使用实数.
注意不要在终端或者eshell里粘贴(输出)很大的数据,用gedit打开大数据的时候一定确保每行的数据量不大,emacs开的时候一定注意翻页不要太快了,否则电脑死机就完蛋了.
fa(并查集/倍增),vis(最短路/判段是否到过),f(dp和f),a,b,x,u,q(队列和询问数)这些变量名不要用着用着就混了.
多个dfs的时候注意每个dfs是不是调用到别的dfs去了.
maxn和maxm不要搞混了.
树链剖分不要写成随机剖分,倍增的循环倒序的要倒序,从0开始的要从0开始,从1开始的要从1开始,tarjan求强连通分量(割点/桥/边双联通分量)的时候分清楚low,dfn,vis.点分治要注意不要写成随机分治了.
set要注意是开set还是multiset,这两个常数巨大,要慎用.
lower_bound和upper_bound一个是返回第一个大于等于它的位置,一个是返回第一个大于它的位置.multiset的erase某个点的时候,要erase那个迭代器所在的点,不能erase这个值,多组数据要clear,map和vector也一样.map还要注意if(Map.find()!=Map.end())来判断元素在不在map里,否则只要用数组的形式就默认插入insert.结构体unique的时候要重载==号.
整数除法得到浮点数要加(double)或者1.0*.stl的size()函数都是返回的unsigned long long,和int加减法取max要注意转成整型.
先花5min打配置,5min打include,freopen,建文件夹.20分钟浏览全部的题.30min写完所有的暴力,留着对拍/保底.
如果电脑坏了或者电脑死机了蓝屏了黑屏了,赶紧举手换电脑,像什么都没有发生一样,到新电脑以后,快速写好配置,快速把之前的打好的代码还原,打过一遍的东西很快就可以还原.主要是心态不能乱,要让意外的伤害降到最小.
写到一半发现思路错了,赶紧停下来仔细思考十分钟,确定自己的做法完全错误之后,再想10分钟,如果没有新的思路,赶紧弃掉打别的部分分.
网络流的cnt记得初始值为1,当前弧优化要加取地址符.
思路遇到瓶颈就想象noip往年的那些考法,都是把简单的东西考出花样.想一些常见的套路,例如
图论:可不可以最短路,可不可以最小生成树,可不可以kruscal重构树,网络流,和二分图有没有关联,求割点求联通分量是否可做,是否可以直接并查集,或者去年逛公园一样记搜,dag也许topo排序可以解决.
树上就要想:树上差分,倍增,lca.没办法了就想:树剖,点分,主席树.如果还是没有思路就想是不是可以转化成什么别的模型.
dp:LIS,最长公共字串可不可以直接套.是否可以前缀和前缀minmax.状态和范围很大,答案范围很小可以把状态答案反过来.是不是背包问题.
让最大值最小,最小值最大的题首先考虑二分答案.只要答案是随其他参数变化是单调的,就可以二分答案.
...
想到了再写吧...
NOIP前的模板复习和注意事项的更多相关文章
- NOIP前的模板
1.筛\(phi\) \(logn\)求少数\(phi\) inline int phi(R int x){ R int res=x,tmp=x; for(R int i=2;i*i<=x;i+ ...
- Noip前的大抱佛脚----Noip真题复习
Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻 ...
- Noip前的大抱佛脚----字符串
目录 字符串 经验 用FFT求解字符串匹配问题 两(多)串DP时状态合并 最长公共子序列转LIS 位运算最大值 挂链哈希 哈希处理回文串 树哈希 字符串模板库 KMP 最小循环表示 Mancher A ...
- Noip前的大抱佛脚----数论
目录 数论 知识点 Exgcd 逆元 gcd 欧拉函数\(\varphi(x)\) CRT&EXCRT BSGS&EXBSGS FFT/NTT/MTT/FWT 组合公式 斯特林数 卡塔 ...
- Noip前的大抱佛脚----图论
目录 图论 知识点 二分图相关 DFS找环 并查集维护二分图 二分图匹配的不可行边 最小生成树相关 最短路树 最短路相关 负环 多源最短路 差分约束系统 01最短路 k短路 网络流 zkw费用流 做题 ...
- Noip前的大抱佛脚----数据结构
目录 数据结构 知识点及其应用 线段树 神奇标记 标记不下放 并查集 维护二分图 维护后继位置 堆 可并堆的可持久化 dsu on tree 方式&原理 适用范围 单调队列 尺取合法区间 模板 ...
- Noip前的大抱佛脚----赛前任务
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...
- NOIP前的一些计划
一些想法 距离NOIP2018只剩下一个星期的时间了,通过这几天在长郡的考试,渐渐感觉还有好多东西自己还不够熟练,也有些东西到现在还不会,现将NOIP前的一些计划列在这里,希望能在考前把他们全部完成吧 ...
- NOIP算法总结与复习
NOIP算法总结与复习 (看了看李总的蓝皮书,收获颇多,记下此文,以明志--) (一)数论 1.最大公约数,最小公倍数 2.筛法球素数 3.mod规律公式 4.排列组合数,错排 5.Catalan数 ...
随机推荐
- HDU5521 Meeting(dijkstra+巧妙建图)
HDU5521 Meeting 题意: 给你n个点,它们组成了m个团,第i个团内有si个点,且每个团内的点互相之间距离为ti,问如果同时从点1和点n出发,最短耗时多少相遇 很明显题目给出的是个无负环的 ...
- ES6 symbol 以及symbol的简单应用
前置 1.ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值. 2.Symbol 值通过Symbol函数生成. 3.Symbol 函数可以接受一个字符串作为参数,表示对 Symbol 实 ...
- 《VR入门系列教程》之2---VR头显
什么是虚拟现实? 虚拟现实的目标:让人们相信真实地处于一个虚拟世界中.要达到这个目标就得让人们的大脑(负责视觉和运动感知部分)欺骗他们.不同技术合在一起才可以创造这种幻觉,包括: 全立 ...
- 《VR入门系列教程》之20---使用Oculus移动端SDK
使用Oculus移动端SDK 在基于安卓系统的GearVR上开发应用需要用到Oculus的移动端SDK,下面的网址可以下载SDK:http://developer.oculus.com ...
- wp伪静态网页打开慢之提速方案1s内打开 wp的静态化插件测试
自上篇文章,我做了伪静态话.可是伪静态访问还是php动态页面,还需要服务端分析如何处理,访问页面时会发现有一个漫长的等待响应的时间.这是打开速度在4s左右.而静态页面则是直接打开,不需要服务器操作,不 ...
- cachestat 安装文档
安装环境:ubuntu18.04 安装步骤 1. 打开命令行,输入以下命令 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ...
- CentOS7源码安装Nginx
系统平台:腾讯云服务器 CentOS 7.3 64位 一.安装编译工具及库文件 [root@VM_0_5_centos ~]# yum install -y make zlib zlib-devel ...
- get解决乱码的方式
//自定义的解决乱码方式
- TCP重置报文段及RST常见场景分析
RST表示连接重置,用于关闭那些已经没有必要继续存在的连接.一般情况下表示异常关闭连接,区别与四次分手正常关闭连接. 产生RST的三个条件是: 目的地为某端口的SYN到达,然而在该端口上并没有正在监听 ...
- Mysql之锁、事务绝版详解---干货!
一 锁的分类及特性 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能 ...