问题标题: 关于考试的技巧

2
1
已解决
王文博
王文博
缔造者之神
缔造者之神

考试时需要一些技巧,才最有可能拿出最高得分。

现在我总结出来了一下几点:(在上机考试有用)

1.不要用bits/stdc++.h。

2.尽量少用cin和cout,因为他们在输入和输出大量数据后,速度会减慢许多。

一定要多用scanf和printf(不过当你在考试时想不到什么“%d”,“%c”等讨厌的东西,就用cin,cout吧)

通过一下图片可以了解的更好。

这是有一题没有用scanf和printf:

用了之后:

速度快了多少???????

再也不用担心TLE了!

(注:只有在输入输出很多数据时才会有如此大的差距)

3.不要加火车头(尽管会加快速度200-300ms)

4.注意时间复杂度,一秒内可以执行不超过1亿次操作(语句),超过了就很有可能会超时(用2.会帮忙加快速度)

特别要注意循环,尽量不要三重循环,甚至四重循环,否则…………TLE!!

5.注意内存(千万要注意!)

内存一般只有5000*5000,,即为25000000,超过就有可能出现以下情况:

(1)RE!0分!不执行!

千万注意数组不要靠近25000000,因为每个其他变量(不光是数组)也要内存!

long long更多!(注:能用bool就用bool,bool可以有1亿个)

定义数组时一般要多定义1,5,10(10最为保险,考试时建议为10,同样定义少了有可能会错几个)

6.注意数据范围

一定要看一下数据范围,这样你能确定数组的大小。前1-2题可以按照满分的算法去做(如果你认为自己无法拿到满分,就用后面的方法),后几题难到爆炸的题目,一般先满足40%-60%(后几题拿到40-60分已经是特别特别厉害了),如果有余力,可以按照满分做法去做(不推荐,万一错了哪一个步骤,直接爆零!)

7.注意文件操作!

考试时要用到文件操作,记住:文件操作千万不要出错!错了的话所有题目都是0分!太亏了!天下第一亏!

在家时一定要多加练习,平时做考试题目时要多用文件操作!

8.可以使用简单方法定义数组

有一些题目要定义大量数组,而且范围都一样,这个时候就要用到这个方法了:

#define N 100010

const int N=100010;

这样N就是100010,而且N可以用来定义数组:

int a[N]是成立的。

9.可以节省大量时间的方法

当我们遇到很多类似的东西(如long long,for(int i=1;i<=n;i++))等,也是可以像8.一样的!

#define ll long long

#define fo for(int i=1;i<=n;i++)

这样ll就是long long,fo就是for(int i=1;i<=n;i++)了。是不是特别省时省力?

10.定义函数和数组时名称很重要

有时候写代码时会有大量的变量和函数,如果多了,我们就有可能不知道谁对谁了。

那么就需要把函数和数组的名字定义成你自己懂得。

例如排序:cmp

dfs深度优先搜索

maxn 最大值

minn 最小值

还有很多,只要自己知道,什么都是可以的。就好比推箱子游戏中的函数:

JG()为金光工作室的缩写,我一读就知知道是金光工作室的介绍

还有choose(),Description(),Game_Menu()等,都是一看都知道的,否则看到就会一脸懵逼。

10.要写//,/*等批注!

批注是长代码中很重要的一部份,他可以让你快速的直到这一行或者这一段代码是干什么的。

如果没有备注,就会非常麻烦的再次理解一遍,编游戏时也一样。

这就是我总结出来的几点。如果有更多的,请发在下面。

王文博在2021-07-10 16:27:22追加了内容

火车头的威力:

(时间限制为2000ms)

不用火车头:

差了多少???

 


0
0
0
0
我要回答