zoukankan      html  css  js  c++  java
  • NOIP上机测试注意事项

    由于近期模拟题原地**次数较多,故写一篇警示文

    1,头文件

    1.1正式比赛中,反正我不敢用bits/stdc++.h。

    1.2正式比赛中,建议打出以下十个库

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<vector>
     6 #include<algorithm>
     7 #include<set>
     8 #include<map>
     9 #include<queue>
    10 #include<bitset>
    11 #include<stack>

    2,宏定义

    2.1  #define通常用于定义最大值,模值数值

    2.2  通过宏定义的函数,一定要注意是否需要加括号(宁可多加不要少加)

     

    3,数据范围

    3.1  需要特别注意程序运算过程,最后输出环节中数据规模是否会大于int,是否会大于long long,如大于int,建议采用全局long long(修改建议用IDE的find实现)

    3.2  需要特别注意程序运算过程中的取模环节,在不卡常的情况下,可以打多几个,以防止爆long long/int 

    3.3  一定要看好数据范围,不能开少(例如:有向边/无向边,线段树空间*4,可持久化线段树空间*log(n)),开够后用极限数据+本地O2进行爆空间检测。

    4,输入输出

    4.1  一定要看好文件的输入/输出名称,绝对不可打错!!!

    4.2  输入输出,在数据范围不大时用cin,否则用scanf,使用scanf时需要特别注意数据类型为int/long long,防止出锅(linux&win7+均为%lld)

    4.3  除非迫不得已,不要使用读入优化

    5,线段树/splay相关

    5.1 线段树,splay等要先进行肉眼调错,降低调试工作量

    5.2 能用线段树/树状数组,不要用splay,减轻工作量

    5.3 splay每完成一次操作,记得调用splay操作

    5.4 线段树/splay每完成一次操作,记得调用pushup(如果需要的话)

    6,对拍相关

    6.1 对拍bat务必检查是否调用了makedata

    6.2 对拍需要尽可能尝试多种构造数据(例如:一条链/扫把树,全是某些数,递增/递减序列)

    6.3 务必需检查好两个对拍文件的文件名,绝对不可以将暴力交上去

    6.4 不要尝试调试拍出错的大数据!

    7,其它注意事项

    7.1 使用结构体时,注意构造函数内的初始化

    7.2 使用memset时,请注意_len大小,不要尝试对一个指针求sizeof

    7.3 有细节部分时,先想清楚,在纸上写好,再开始打

    7.4 思考要全面,贪心算法等要尽可能地构造反例!!

    7.5 在定义MAX时,要考虑最坏情况,必须大于正常可构造的最大情况。

    7.6 注意树剖/并查集合并siz/dep时的符号方向!

    (暂时想了这么多,又想到我会来补充)

  • 相关阅读:
    SpringBoot2.x入门教程:引入jdbc模块与JdbcTemplate简单使用
    2.5万字长文简单总结SpringMVC请求参数接收
    SpringBoot2.x入门:使用CommandLineRunner钩子接口
    百万级别数据Excel导出优化
    SpringBoot2.x入门:应用打包与启动
    谈谈对分布式事务的一点理解和解决方案
    3W字干货深入分析基于Micrometer和Prometheus实现度量和监控的方案
    SpringBoot2.x入门教程:理解配置文件
    SpringBoot2.x入门:引入web模块
    SpringBoot2.x入门:快速创建一个SpringBoot应用
  • 原文地址:https://www.cnblogs.com/xiefengze1/p/9746015.html
Copyright © 2011-2022 走看看