拿到题目先写裸的暴力,暴力一定要写对,没想出正解有暴力垫底,想出了正解也可以拿来拍

  过了样例之后一定要造数据测,数据越坑越好

  一定要造极限数据,哪怕造不知道答案的数据都行,主要是检测RE和TLE,正确性用拍来检测

  如果目前已经可以拿到很高的分,可以考虑放弃剩余的小分数,把时间留给其它地方

  题目一定要认真仔细看清楚,坚决避免代码写完了结果题目看错的情况

  样例一定要手动分析一遍,或许分析的过程中就能找到思路,同时分析样例也是帮助理解题意

  简单的题目要照简单的方法做,不要想着一些高大上的东西,只要能过就行

  注意数组的大小,在不爆空间的情况下宁愿开大一点

  遇到题面很难读懂的题目一般都是水题,只是它的外表迷惑了你

  特殊的数据要写骗分,比如m=1或者k=n之类的

  代码里用 if 判断选择不同数据范围,小的数据用暴力,大的数据写正解,这样是最保险的

  想不出来的一定不能空着,哪怕猜个结论,输出个n/2,随机一个数都可以

  连通性想到并查集,这是很优秀的一个数据结构

  DP方程可以做变形,从中发现是否具有单调性,或者可以做斜率优化等等

  对于一个正整数n,可以用二进制来表示,也就是每一位可以用若干个2k相加来表示

  范围给的很小的题目正解通常就是搜索,如果搜索跑不出来可以想想状压DP

  只有一个数字的输入或者范围给的太大(如n=231)往往能够O(1)地做,而且一般这种题目能够打表找规律,或者推出O(1)的公式,或者根据n来骗分也可以;如果公式推出来是O(n)的但是答案是有规律的,那么可以分段打表

  哈希值要定好,两个大的哈希模数是109+9和109+7,乘的p取6-8位的质数,可以用106+7和106+9

  求最值题先想贪心,再想DP,二分答案,如果想不出来正解可以贪心骗分

  DP发现时间复杂度不对但是优化不了的时候,可以随机前面的状态转移,随的次数根据时间去计算

  贪心要去证明它的正确性,可以找反例,或者拿暴力去拍

  正确性不确定的算法一定要拍

  一般题目都不会卡SPFA,有时SPFA比Dijkstra+堆还快

  在判断 x>0 的时候一定要想 x 会不会有负数的情况,如果有负数单单写个 if(x) 是错误的

  字符串千万别用gets读入,scanf("%s") 是以空格或者回车作为字符串的结束标志

  许多二分栈可以优化成单调队列

  记忆化搜索容易写,不用想DP的拓扑关系,缺点是无法剪枝,所以要算好复杂度

  欧几里得距离是实际的距离,曼哈顿距离是横纵坐标差的和,切比雪夫距离是取max(横纵坐标差),也就是国际象棋王走的最短距离

  DP找不到单调性的时候可以把状态打出来,寻找它的单调性

  经典的模型一定要会写,而且要写得熟练

  DP的转移可以用数据结构维护之前的状态

  有些题目的正解就是从暴力一步步推出的,或者是一些特殊数据的算法的结合版

  最长前后缀可以用KMP的预处理线性得出

  带条件限制的最短路可以增加一维状态来做

  对于0,1之类的小数据要做特殊判断

  数据范围是n<231时不能直接 for(;i<=n;i++),因为i=231-1时再i++就会变成负数

  一般有最优性剪枝的搜索都可以卡时

  如果对于每个询问都要做相同的预处理,可以把连续的询问放在一起预处理,这样效率会高些

  题目要求选择一些特殊的点时,将这些点加上或者减去一个数会影响答案,那么这就可以进行二分

  裸的数据结构题先打暴力,一般这类题的正解又臭又长,很难短时间内写对

  类似于八车问题,可以用把行和列拆成点做二分图匹配

  若要求数列中某个数不为其中两个数之和(或同一个数的两倍),那么最多可以放的数为最小的数的值

  代码一边写要一边想,争取一次打对

  贪心证明是错的题目,或许能够贪心+调整做

  如果实数比较要求输出3位,一定要输出4位及以上,总之要比它至少多一位

  long double不能直接输出,要转成double再输出

  整数除以整数,即便是赋值给实数,得到的也是整除的结果

  式子里至少有一个long long,否者会爆int

  如果下一行要读入字符串,那么这一行的scanf("%d",n)要加上\n变成scanf("%d\n",n)

  每道题都可以加读入和输出优化

  一个环可以复制一遍接到后尾成一条2n的链,这样可以选断点的时候操作更简便

  如果一个点为两点之间的必经点,那么删去这个点会导致这两点不连通

  要求乘积的最值,可以转换成把每个取对数相加的最值

  树上倍增转移值时,g[j][i]=g[j][i-1]+g[f[j][i-1]][i-1],右边g的第一维中为f(祖先),不为g

  如果在拍中还输出了别的东西,提交的时候一定要改回来

  在最终提交前,要把所有代码都测一遍样例

  在个人文件夹下建子目录,外面也要放源程序

  如果有多组数据,可以把样例合在一起再测一遍

  如果long long加了读入优化,读入一定要改成long long,也就是说换了类型的变量在所有读入和输出中都要换

  卡时的地方判断一定要是 if (clock()>TL*CPS) 一个不能错

NOIP总结的更多相关文章

  1. NOIP模板整理计划

    先占个坑 [update]noip结束了,弃了 一.图论 1.单源最短路 洛谷P3371 (1)spfa 已加SLF优化 #include <iostream> #include < ...

  2. NOIp 11.11/12

    最后一场比较正式的NOIp模拟赛,写一发小总结.题目没什么好说的,大部分很简单,先贴一下代码. 1111 T1 //string //by Cydiater //2016.11.11 #include ...

  3. NOIp 1109

    停课后的第一场模拟赛,应该不会怎么说今天的模拟赛,除了第一题不知道那种筛法的复杂度是$log$的没敢写,其他都挺水的.另外,第三题的数据也弱化了,建议去这里再交一遍. 贴一下AC代码,有兴趣可以参考一 ...

  4. NOIp 2016 总结

    NOIp 2016 总结 -----YJSheep Day 0 对于考前的前一天,晚自习在复习图论的最短路和生成树,加深了图的理解.睡得比较早,养足精力明日再战. Day 1 拿到题目,先过一边,题目 ...

  5. 历年NOIP水题泛做

    快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...

  6. [杂谈]冲NOIP一等奖。。

    唉不想多说了. 真是一段“传奇”的经历啊. 还是那句话..“是的我上次什么都没说就走了...”这次也一样. 我还是太单纯的以为我们是肯定能够参加北大的夏令营的..然而结果真是意料之外啊. 本来我以为我 ...

  7. 【最后的抒情】【离NOIP还有9个小时】

    学了NOIP 大概十一个月左右,中途的插班生.从2015年12月底开始学信息竞赛,在寒假的时候还笑着我还有九个月才考试呢,生竞就只有两个月了.没错我是从生物竞赛转过来的.记得当初写申请的时候,写的理由 ...

  8. Ubuntu 配置 no-ip

    安装Python开发依赖包 sudo apt-get install python-dev 配置PIP并安装noipy sudo apt-get install python-pip sudo pip ...

  9. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  10. [noip科普]关于LIS和一类可以用树状数组优化的DP

    预备知识 DP(Dynamic Programming):一种以无后效性的状态转移为基础的算法,我们可以将其不严谨地先理解为递推.例如斐波那契数列的递推求法可以不严谨地认为是DP.当然DP的状态也可以 ...

随机推荐

  1. 程序员书单_java学习基础编程篇

    Java程序设计语言.(美国)阿诺德.清晰版 http://download.csdn.net/detail/shenzhq1980/9076093 JAVA2核心技术第1卷.基础知识7th.part ...

  2. 不包含适合于入口点的静态"Main"方法

    学习新建项目.此问题做为笔记. 错误 1 程序“admin.exe”不包含适合于入口点的静态“Main”方法 原因:原来创建项目的时候,用的是“空项目”,我以为这样就会生成类库,实际上,一开始准备运行 ...

  3. Java-Lambda

    1. 函数式接口 函数式接口可以包含多个默认方法.类方法,但是只能有一个抽象方法. Lambda表达式的目标类型是函数式接口. java.util.function包下,定义了大量的函数式接口 2. ...

  4. RPM Fusion on CentOS7

    RPM Fusion RPM Fusion provides software that the Fedora Project or Red Hat doesn't want to ship. Tha ...

  5. define宏定义中的#,##,@#及\符号

    define宏定义中的#,##,@#及\符号 在#define中,标准只定义了#和##两种操作.#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串. 1.# (string ...

  6. 关于uboot中tftp上传内存数据到tftp服务器

    uboot下的tftp下载功能是非常重要和常见的功能.但是偶尔有些特殊需求的人需要使用uboot的tftp具有上传功能.默认的uboot没有tftp上传功能,如果需要修改uboot代码.使用时键入第4 ...

  7. 使用eclipse创建java程序可执行jar包

    一.eclipse中,在要打成jar包的项目名上右击,出现如下弹出框,选择“export”: 二.在接下来出现的界面中点击“jar file”,然后next: 三.在接下来出现的界面中,如图所示勾选上 ...

  8. 正则表达式中的\b

    转自百度知道:https://zhidao.baidu.com/question/58688915.html\b表示的应该是ASCII码中的BS字符(退格字符),匹配字与字中间那个看不见的东西(即一个 ...

  9. pyhton读取json格式的气象数据

    原文关于读取pm25.in气象数据的pyhton方法,以及浅析python json的应用 以pm25.in网站数据为例. 1.方法介绍 首先感谢pm25.in提供了优质的空气污染数据,为他们的辛勤劳 ...

  10. DB2 SQL性能调优秘笈

    SQL优化技巧 1.去除在谓词列上编写的任何标量函数 2.去除在谓词列上编写的任何数学运算 3.SQL语句的Select部分只写必要的列 4.尽可能不用Distinct 5.尽量将In子查询重写为Ex ...