NOIP比赛写代码注意事项

摘要:
Cstdio包括scanf和printf,算法>很容易忘记使用namespacestd;但是,使用了usingspacestd;您的变量名与std命名空间的名称冲突,因此不要使用time和pipe作为变量名。管道可以作为结构的成员名称。字符串和向量。因为主函数定义局部变量,数组元素类型为int。

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.建立图的邻接矩阵和邻接表时,注意单向边和双向边,重边,自环等情况。

免责声明:文章转载自《NOIP比赛写代码注意事项》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇node服务端口被占用go 二进制数据处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js动态设置根元素的rem方案

方案需求: rem 单位在做移动端的h5开发的时候是最经常使用的单位。为解决自适应的问题,我们需要动态的给文档的根节点添加font-size 值。 使用mediaquery 可以解决这个问题,但是每一个文件都引用一大串的font-size 值很繁琐,而且值也不能达到连续的效果。 就使用js动态计算给文档的fopnt-size 动态赋值解决问题。 设计稿以7...

Python学习之路_day_04(字符串与列表的内置方法)

一、字符串内置方法的基本使用1 用途:记录描述性的状态,比如人的名字、地址、性别 2 定义方式:在"",'',""""""内包含一系列的字符msg='hello' #msg=str('hello')res1=str(1)res2=str([1,2,3])print(type(res1),type(res2))info="'xxx'" 3 常用操作...

Haar小波分析

一 尺度函数与小波函数     基本尺度函数定义为:,对其向右平移任意 k 个单位,构成函数族 , 该函数族在 空间中正交,证明如下:    1 ;    2 当 m 不等于 k 时,    函数族  构成一组正交基,并形成  子空间。在  子空间中,任意函数均可表示为  的线性组合,。    将函数族  构造宽度缩小一半,则可形成宽度为  的一组正交基...

Android Studio的android 模拟器启动黑屏问题解决

问题描述 使用Android Studio新创建的模拟器可以正常使用,当重新启动Android Studio之后,模拟器可以启动,但一直黑屏(也没有显示Android字样) 修改方法 在模拟器编辑界面,点击“Show Advanced Settings”按钮,显示详细配置,修改“Boot option”为“cold boot”,保存后即可正常使用 问题定位...

jq+layui 总结1

1、//获取当前时间*24小时制var myDate = new Date(); var createTime=myDate.toLocaleString('chinese', { hour12: false }); 2、//获取select中选中的值var temType = $("#temType option:selected").text(); 3...

Android 属性自定义及使用获取浅析

一、概述 相信你已经知道,Android 可使用 XML 标签语言进行界面的定义。每个标签中有一个一个的属性,这些属性有相应的属性值。例如: <cn.neillee.composedmenu.RotatingArcMenu android: android:layout_width="wrap_content" android:layout_...