• 经常犯的sb错误、做题技巧合集


    最近打比赛总是犯一些没有脑子的错误。
    发现不好好总结一下,可能会经常犯。
    而且还有些值得注意的地方。

    Part 1

    • 打完题目一定要打对拍
    • Pascal选手千万千万注意——不要和C++选手玩时间,比暴力,不然会被爆艹一顿。
    • 在调试过程中,数组开小的一定要在交题时改回来。
    • 数组千万别开小。
    • 文件输入输出千万不要打错。
    • Pascal的setlength要尽量少用,及其的慢。
    • Pascal里字符串的比较(如s='abc',t='abd',if s=t then write('YES');)这种尽量少用。
    • Pascal一般见到树的大小超过200000即可打人工栈,当然,可以在递归过程中尽量不定义变量。
    • Pascal打完一定要保存,按F2
    • 用uses math库调试发现RE,要删掉后调试。不然一直会217
    • Pascal在215有时会报201
    • Pascal的硬核inline优化没有用
    • 一定要用极限数据测一测程序
    • 一定要开Long Long
    • 一定要小心MLE
    • 交题目一定要注意不能交错
    • 不会做的题目一定要打暴力,不能头铁正解或是放着不管。
    • 有些题目可以利用一个思想——正难则反
    • 不要理解错题意!不要理解错题意!不要理解错题意!
    • hash不一定要用记录数据的hash,有时双hash、三hash可能更优(看人品)
    • 看到前缀可以想到后缀,看到子序列(一定要区分连续的和不连续的)可以想到kmp。
    • 看到数位DP可以利用记忆化搜索的套路来做。
    • 一些毒瘤图论题,看到边数、点数不大可以想想网络流
    • 比赛见到计算几何千万别杠,不然会被反杠一顿。
    • 数据结构的题目不打对拍必定会挂。
    • 数学题——结论靠猜,证明靠拍
    • 一定要特判一些特殊情况。
    • 一定要将思路理清后才打。
    • 要坚信数据水,想到水法就抛硬币吧。
    • splay或spaly一定要记得时时刻刻update,不然不管是分数还是调试过程都会让人心态崩掉。
    • spfa它死了尽量不要用,可以用dij(虽然比较难打)
    • 对拍程序:(超级好用)
    @echo off  
    :loop  
        rand.exe>data.in  
        std.exe<data.in>std.out
        my.exe<data.in>my.out  
        fc my.out std.out  
    if not errorlevel 1 goto loop  
    pause  
    goto loop
    
    
    • 多组数据一定记得清空
    • fillchar一定要注意时间,以免跑挂。
    • 肉眼查错误有时候会很优秀(可能会占用人脑资源)。

    Part 2

    转C++时间:
    2019.8.1
    接下来是C++专场

    • 赋值是=,判断是==。
    • 注意二进制操作的优先度是比+和-还有后的。
    • 注意i++和++i的区别。i++ :先引用后增加 。++i :先增加后引用 。
    • 一定一定一定要注意longlong和数组范围(数组范围是0~n-1)
    • 输入记得要加上“&”,输出不要加上。
    • 开了longlong一定要输入输出时打%lld
    • C++字符串最好利用字符数组。输入时这样输入:scanf("%s",ss+1);
    • Pascal中exit在C++中是return,halt是exit。break、continue不变。
    • 万能头文件(大比赛慎用):#include< bits/stdc++.h>
    • Ox(吸氧羊):
        __attribute__((optimize("-Ox")))//(把x换成1、2、3)
    
    #include<cctype>
    inline int read()
    {
        int X=0,w=0; char ch=0;
        while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
        while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
        return w?-X:X;
    }
    
    • register可以写在for语句中,一个硬核优化。
    • 是该学学C++自带的东西了。
    • C++除法慢,和%是一个级别的。
    • C++调试很恶心,肉眼查是必备的技巧。
    • 记得C++在主程序定义的变量与全局定义的变量不同。
      还有一个东西,石家庄O3!!!
    #pragma GCC optimize(2)
    #pragma GCC optimize(3)
    #pragma GCC optimize("Ofast")
    #pragma GCC optimize("inline")
    #pragma GCC optimize("-fgcse")
    #pragma GCC optimize("-fgcse-lm")
    #pragma GCC optimize("-fipa-sra")
    #pragma GCC optimize("-ftree-pre")
    #pragma GCC optimize("-ftree-vrp")
    #pragma GCC optimize("-fpeephole2")
    #pragma GCC optimize("-ffast-math")
    #pragma GCC optimize("-fsched-spec")
    #pragma GCC optimize("unroll-loops")
    #pragma GCC optimize("-falign-jumps")
    #pragma GCC optimize("-falign-loops")
    #pragma GCC optimize("-falign-labels")
    #pragma GCC optimize("-fdevirtualize")
    #pragma GCC optimize("-fcaller-saves")
    #pragma GCC optimize("-fcrossjumping")
    #pragma GCC optimize("-fthread-jumps")
    #pragma GCC optimize("-funroll-loops")
    #pragma GCC optimize("-fwhole-program")
    #pragma GCC optimize("-freorder-blocks")
    #pragma GCC optimize("-fschedule-insns")
    #pragma GCC optimize("inline-functions")
    #pragma GCC optimize("-ftree-tail-merge")
    #pragma GCC optimize("-fschedule-insns2")
    #pragma GCC optimize("-fstrict-aliasing")
    #pragma GCC optimize("-fstrict-overflow")
    #pragma GCC optimize("-falign-functions")
    #pragma GCC optimize("-fcse-skip-blocks")
    #pragma GCC optimize("-fcse-follow-jumps")
    #pragma GCC optimize("-fsched-interblock")
    #pragma GCC optimize("-fpartial-inlining")
    #pragma GCC optimize("no-stack-protector")
    #pragma GCC optimize("-freorder-functions")
    #pragma GCC optimize("-findirect-inlining")
    #pragma GCC optimize("-fhoist-adjacent-loads")
    #pragma GCC optimize("-frerun-cse-after-loop")
    #pragma GCC optimize("inline-small-functions")
    #pragma GCC optimize("-finline-small-functions")
    #pragma GCC optimize("-ftree-switch-conversion")
    #pragma GCC optimize("-foptimize-sibling-calls")
    #pragma GCC optimize("-fexpensive-optimizations")
    #pragma GCC optimize("-funsafe-loop-optimizations")
    #pragma GCC optimize("inline-functions-called-once")
    #pragma GCC optimize("-fdelete-null-pointer-checks")
    
    
    • C++不要用什么奇怪的变量:int rank, time, tube, y0, y1,next;之类的。
    • long double 用%Lf
    • unsigned long long输出用%llu 读入的话用读优或cin吧。(cin >> A;cout << A;)
    • 实数判相等时一定要做差去绝对值。
    • C++开数组如果是[n][m],其中m<n时,可以这样:[m][n]来开。似乎空间寻址会快。(常数小优化,还比较有用)

    Part 3

    关于NOIP比赛策略的一二事(时间:2020NOIP退役赛前夜)

    • 一定要大脑清晰!一定要大脑清晰!一定要大脑清晰!
    • 一定要审清题目!一定要审清题目!一定要审清题目!
    • 一定要打满暴力!一定要打满暴力!一定要打满暴力!
    • 一定要心态平和!一定要心态平和!一定要心态平和!
    • unsigned long long的正确用法 (€€£不干人事)
    • 对拍的正确用法(也不知道暴力选手的我用不用得上)
    • “模拟不能算黑……黑题……NOIPT1的事,能算黑么?”
    • 不会做就打表!打完表就找规律猜结论!
    • 数学题就看灵性了,应该不会有什么奇怪的反演把~
    • 遇到不大会的题先去想想贪心、转化、构造,说不定就能从一些奇妙的结论中发现正解。
    • 实在不会就DP吧,NOIP打DP还是有前途的。
    • 打线段树就必须对拍,不对拍就是0分。
    • 写题前先把思路理在草稿纸上,以免越打越乱(尤其是模拟)
    • 上厕所有益身心健康。
    • 文件名、文件夹、我不要当要素过多人!一定要留下10~15分钟开始检查文件,以防爆炸。
    • 听说过程名%%队爷能够提高RP哦!
    • 切T1+T2T3T4高分暴力即可(T4一定有坑,切莫以为自己能够切掉)
    • 有一说一,不懂就问!
    • 不能相信大数据(你永远不知道出题人构造大数据的同时在做些什么)
    • 吃好睡好,考前别喝coffee。同时带上些巧克力,不仅能补充能量,还能放松心情,更可以馋哭隔壁的小朋友。听听纯音乐放松放松就上战场了吧。

    小结:
    最后一次停课,最后一次在比赛时怒敲键盘,最后一次对着题目感受时间的飞逝。
    回想起第一次普及组比赛时的兴奋,懵懂无知;第二次提高组比赛时的紧张到碎不着;到现在的平静如水,好想放声大哭一场。
    实力不行,省队什么的是奢望。现在我只想保存我那些日日夜夜在机房的欢声笑语在我心中。
    最后一役,我将在寒风中怀抱温暖,放飞自我。
    加油!NOIP2020!

  • 相关阅读:
    asp.net 对母版页的控件事件
    treeview操作集合
    使用GAppProxy时安全证书无效的解决办法
    向Excel模板中添加数据
    C# 重写 winform 关闭按钮
    完整ASP.Net Excel导入程序(支持2007)
    随笔二则
    标记枚举(flags)的使用
    System.Reflection.Missing.Value与Type.Missing
    Windows下Android源码下载方法
  • 原文地址:https://www.cnblogs.com/RainbowCrown/p/11166189.html
Copyright © 2020-2023  润新知