离线赛小技巧和提示以及做题流程

考前温馨提示

1.审题
(1)考试前15分钟,专心通读完每一道题
(2)读完题后,在 n o t e note note上写好暴力的分的一些关键字(注意可行度)
(3)对数据的范围要敏感,如 m ≤ 20 m \le 20 m20——刚好可以状压 , A i ≤ 1 0 9 A_i\le10^9 Ai109 ——一定要注意开 long long
(4)当有n和m时或更多时,切忌读错(而且样例很可能给的是n=m)
(5)图论题注意重边和自环,以及环

2.数据类型
(1)有 + + + ∗ * 出现时,要条件反射似的(最好再看看数据范围), ∗ * 时一定要仔细计算有关的数据的极限会不会爆 i n t int int,然后是否开long long或在表达式中加 1 l l 1ll 1ll(当然要测内存)
(2)取模之前不能有除,遇到有模数的题,预测会不会有除法
(3)再多个数 + + + ∗ * 最后要取模时,稳点, + + + ∗ * 一个数就模一次(一般不会因为这个超时)
(4)取模最后还是写个 A d d Add Add函数,也方便检查(注意有时会脑抽在x-=mod处,写成x-=y)
(5)模数不要自己打,复制粘贴
(5)还是要注意数据范围,long long 也会有炸的一天——高精度
(6)局部的数组和多测试数据时,注意数组清空

3.文件名
(1)一定要复制粘贴,尽管只有3、4个字母
(2)建好文件夹后,马上打freopen , 注意 stdin 和 stdout
(3)最后时间千万不要急,仔细地在检查一遍

4.调试
(1)对拍完后静态观察一波(有一些是可能拍不出来的)
(2)用完调试可以将它存在 n o t e note note中,不要留在 c p p cpp cpp
(3)可以用用 c e r r cerr cerr,再对拍大数据时可以动态观察

5.切分
(1)即使想到正解了,也要先打暴力
(2)最后除了暴力还有一档,最后正解很有可能在次档优化,也是防止优化错了
(3)最好切3档 暴力,特殊情况,正解
(4)注意切分的 i f if if顺序和之后一定不能少 e l s e else else

6.内存
(1)每题一定要在定义完数组后求内存(sizeof(a))
(2)对拍完小数据后,特别造一组极限数据,看会不会 R E RE RE
(3)切分切太多档导致数组的范围不同时,在数组上一行注释上着一档的范围

7.对拍
(1)打完return 0后就打srand(time(NULL)),这都是无脑的
(2)先拍小数据,小到“极限”,直到自己能手算模拟
(3)隔10分钟左右,逐步加大数据的范围,第3次时试试大的极限数据

8.代码编写细节
(1)头文件先打上最常用的(eg:iostream,cstdio,cstring,map,vector,algorithm,math),能用bits/stdc++.h还是用吧,有时候编译器比较傻
(2)变量名注意与系统的变量名重复,系统变量名(eg:y1,y0,hash,begin,end,rank,next,
pow,time,cos,prev,log2,index),最好取变量名第一个字母都大写
(3) i f ( − 1 ) if(-1) if(1)是为真的,当且仅当为 0 0 0时为假
(4)for时考虑边界,是否有 i = 0 i=0 i=0时又有访问数组下标为 i − 1 i-1 i1 i − k i-k ik(考虑k的范围)
(5)变量最好开成全局,除for读入的变量
(6)小心同时定义两个变量时,前一个数为后一个数赋值时,本地测试是没有问题的,然而离线时就很有问题了

流程表

(1) 0 min ~ 20 min :
通读所有题目。
(2)20 min ~ 35 min:
想好每道最最暴力的分,并思考代码的可行性,最后再note上写好算法的关键字(一定要写!!!)。
(3)35 min ~ 50 min :
敲好 T 1 T_1 T1的暴力。
(4)50 min ~ 60 min :
稍微想想第1题的正解(讲道理第1题不会坑的…)。
(5)60 min ~ 1h 20 min :

  1. T 1 T_1 T1正解想出,就先写且不要犹豫。
    2.否则,直接去想 T 2 T_2 T2 T 3 T_3 T3的暴力(此时应看题的难易程度)。
    (6)1h 20 min ~ 1h 40 min :
    1.若 T 1 T_1 T1正解写完,就紧接着(5)第2步去做。
    2.否则再仔细看刚刚的敲完暴力的那题,看看数据有没有可以水的分,尽一切水到,当然,也要一定的写好相应的 n o t e note note
    (7)1h 40 min ~ 2h :
    T 3 T_3 T3 T 2 T_2 T2的暴力。
    (8) 2h ~ 2h 10 min:
    1.若 T 1 T_1 T1正解写好且 T 2 T_2 T2, T 3 T_3 T3暴力敲好,就开始 T 1 T_1 T1的对拍。
    2.否则,再一次全读题目,看是否是审题问题(看题的难易程度)。
    (9) 2h 10 min ~ 2h 40 min :
    1.若节奏一切良好, T 1 T_1 T1 T 2 T_2 T2 T 3 T_3 T3已写好,则尽一切可能去水完 T 2 T_2 T2 T 3 T_3 T3的小数据的分。
    2.否则,
    (10) 2h 40 min ~ 2h 50 min :
    1.检查第1题,若已经开始对拍,则开始跑一组大数据。
    2.静态调试代码,通读代码,检查是否有致命的小错误。
    3.游刃有余时,可以开始想 T 2 T_2 T2 T 3 T_3 T3的正解。
    (11)2h 50 min ~ 3h 10 min :
    若想到 T 2 T_2 T2 T 3 T_3 T3的正解,先写好 n o t e note note,算一算复杂度,稍微想想代码实现的可行性,最后才开始写。
    (12) 3h 10 min ~ 3h 20 min :
    1.若 T 2 T_2 T2 T 3 T_3 T3的正解写好,先手造一组小数据,然后拍极限数据。
    2否则,再次读题,水分…
    (13)3h 20 min ~ 3h 30 min :
    检查。(具体看上文的温馨提示)。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值