zoukankan      html  css  js  c++  java
  • NOIP比赛写代码注意事项

    1.头文件:
       常用头文件:
          <iostream>
          <cstdio>
          <cmath>
          <cstring>
          <cstdlib>
          cstdio包含scanf和printf,有的编译器iostream都包含了,都写上比较好一般写代码时先都把这几个写上去。
      较常用头文件:
           <algorithm>
           <vector>
           <queue>
           <string>
      头文件太多时,容易忘写using namespace std;我经常忘了输这一行。

    但是用了using namespace std;之后容易产生的问题是:自己的变量名和std命名空间的变量名冲突,而且在windows下,编译器不报错。在linux下报错。所以自己的变量名不要使用time,next,pipe。如果需要这几个单词,可以用Time, Next。当然,time,next,pipe作为结构体的成员名是没问题的。


    2.STL:
        STL主要是依靠各种容器和函数来实现各种功能,但是STL有些比较鸡肋,比如队列和栈,手写很方便,而且快一些,主要就用堆(priority_queue),字符串(string)和动态数组(vector)。


    3.数组:
        C++里数组出问题可能会出现莫名其妙的问题,所以一定要记得把数组开大点,并且赋初值。最好是开成全局变量,因为在main函数里定义的是局部变量,给你的空间会小一些,二维数组随便一开就爆了。


    4.指针:
        指针我除了学的时候几乎没用过,一般就开个数组用下标i做指针,比较方便。


    5.时间空间资源和精度:
        1000毫秒内最大循环次数不要超过10^8(10^8有点悬,10^7绝对不超时)。空间限制在128MB时,数组元素类型为int时,元素个数最多千万级别(约3*10^7),要定义在到main函数外面的全局变量区(二维数组的两个维度大小要相乘)。

    6.数据范围

      有的题目,比如深学游戏一题,多个数相加,每个数的最大值就到了1e9,那么存放和的变量就必须是longlong  

      有的题目,比如求最短路径的题目,边权的最大值都到了1e9,并且更新最短路径时时两个边权相加,结果就是2e9,那么我们在为dist数组元素赋值为无穷大时,应该设多少呢?我们的无穷大可以是1e9+1,或者0x3f3f3f3f=十进制1061109567, 0x7f7f7f7f=十进制2139062143,int 的范围是-2147483648 ~ 2147483647。所以以后我们程序中的无穷大就定义为1e9+1或0x3f3f3f3f

    7.千万注意输出格式和大小写问题

        比如注意题目要求每个输出结果在同一行,还是在不同行;或输出yes no right impossible等英文提示时要求首字母大写。比如 洛谷1443 马的遍历 输出要求 左对齐 占位5

    8.建立图的邻接矩阵和邻接表时,注意单向边和双向边,重边,自环等情况。

  • 相关阅读:
    2021.07.01 学习总结
    2021.06.30 学习总结
    2021.06.29 学习总结
    2021.06.28 学习总结
    ubuntu 安装nginx报错./configure: error: SSL modules require the OpenSSL library
    Docker 启动alpine镜像中可执行程序文件遇到 not found
    docker基于cenots7 制作nginx镜像
    【Linux报错】VM虚拟机的CentOS7系统启动时报Generating /run/initramfs/rdsosreport.txt
    Docker Swarm 集群概念扩展
    Docker Swarm 集群弹性、动态扩缩容
  • 原文地址:https://www.cnblogs.com/StoneXie/p/9408073.html
Copyright © 2011-2022 走看看