信奥比赛

OI​(Olympiad Informatics):信息学奥林匹克竞赛

OIer​:参加信息学奥赛的选手

OJ​(Online Judge):在线判题系统

CSP-J/S :由 CCF 主办的计算机非专业级别的软件能力认证。认证包括 CSP-J(Junior,入门级)和 CSP-S(Senior,提高级)两个级别,认证内容均包括算法设计能力和编程能力。

NOIP​:全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces)。同一时间、不同地点以各省市为单位由特派员组织。全国统一大纲、统一试卷。

NOI省选​:每年 NOI 举办之前,各省需分省进行省代表队选拔,从而确定哪些选手获得本省参加 NOI 的名额。

NOI​:全国青少年信息学奥林匹克竞赛,即国赛。

CTSC​:国家队选拔比赛,选出参加IOI的国家队的比赛。

IOI​:国际信息学奥林匹克竞赛,全球的比赛,OI最高荣誉

比赛结果

一道题目提交后,可能得到两个结果:

AC​:Accepted 答案正确/通过

WA​:Wrong Answer 答案错误

除此之外还有更多的状态缩写:

UKE​:Unknown Error 未知错误

RE​:Runtime Error 运行时错误

CE​:Complie Error 编译错误,语法有问题

PE​:Presentation Error 格式错误

TLE​:Time Limit Exceed 超出时间限制,需要优化你的算法

MLE​:Memory Limit Exceed 超出内存限制

OLE​:Output Limit Exceed 输出超出限制

信奥做题技巧

骗分​:就是用不是正解的程序(保证我们能轻松搞定的程序),尽可能多得骗取分数。

暴力解题​:本质是列举法;就理论上而言,它可以解决所有问题,只是时间的长短问题罢了。但对于“暴力求解法”也是可以进行优化的,我们姑且称优化后的“暴力求解法”为“巧暴”。

具体的操作方法就是充分利用约束条件,以缩小算法计算的范围。

(1)利用题目中的等式条件

(2)利用题目中的不等式条件,进行数学中不等式的缩放

对拍​:用一个简单的程序去检测一个复杂的程序。简单的说就是当你写完一个题目的程序以后,再写一个暴力求解该题目的程序,然后自己生成一些测试数据,看同样的数据,两个程序输出的结果是否相同,不同意味着被对拍的程序有问题。以此来帮助你修改程序,提高通过率的方法,我们称为对拍。

信奥选手强弱

蒟蒻​:巨弱的谐音,用于OIer自谦,几乎所有人(哪怕是大佬)都会用这个词称呼自己。

神犇bēn)****​、巨佬等是OI圈内的敬辞,通常在各大OI社区中代替大牛或​大佬

AK​:在一次比赛里AC了所有题,AK全称是All-Killed,代表在比赛中获得全满分。

爆零​:在一次比赛中喜提0分

%%%:%是取模运算,即算余数,由于“模”和“膜”同音所以%%%即为“膜膜膜”,用于膜拜大神。

orz:形似跪着的人,同样用于膜拜大神。

其他

OJ:Online Judge,在线测评网站。

自动机:oo自动机原型为AC自动机,本义为一种字符串匹配的算法,但由于AC正好和Accepted的简称AC撞了,因此成为了一个玩笑,引申出WA自动机,RE自动机啥的。

卡常:由于某些算法的时间效率不稳定并且出题人不想让你用这种算法所以造一些数据卡这种算法,理论上的时间效率没变但是有的题就是被卡,比如SPFA。

关于oooo,它死了:这个梗的由来是NOI2018。NOI2018 d1t1 归程需要使用最短路算法,而可用的一种最短路算法SPFA的时间复杂度是不确定的。所以出题人卡了这个算法的时间,在讲评ppt上写“关于SPFA,它死了”

rp:人品,有的时候写的“差不多”的两个程序交给测评姬会得到差别巨大的结果,被称为属于人品问题。

rp++rp是“[人品]的缩写,代指运气;++是C语言家族中的自加号。OI圈内常用​rp++​祝福自己或他人在比赛时能人品爆发。

BCOI的排行RP值(Rating Point),是根据一定的算法计算出你在BCOI的解题努力程度,由于算法比较复杂,无法简单解释其计算方法,所以我们也可以根据音译直接理解为为“人品努力值”。

玄学:一些奇奇妙妙的问题分析半天也无法看出端倪,就比如上面说的“差不多”的两个程序交给测评姬会得到差别巨大的结果,或者算不准的时间效率之类的就被归为玄学问题……信息奥赛由于这种问题蛮多的而被叫做“玄学奥赛”。

OI数字梗

32767

21512^{15}-1。16bit带符号整数(C/C++:int16_t),(C/C++:short)的最大值。

65535

21612^{16}-1。早期许多程序的数据采用16bit无符号整数(C/C++:uint16_t)。有时发生计算错误,得到本来不该有的-1(下溢出),而-1在16bit无符号整数中就会变成这个值。同时亦为16位二进制最大数.

998244353 = (119 << 23) + 1

神秘的UOJ素数,仅次于1e9 + 7的存在

1e9+7 = 1000000007

最常见的取模素数,出没于大量的算法竞赛题中。

0x3f3f3f3f = 1061109567

同时满足“每8位相同”“两倍在int范围内”两个要求的最大数,常常被作为无穷大使用。

0x5f3759df 或 0x5f375a86

以十六进制表示的所谓的“魔术常数”,是牛顿迭代法开根号倒数的最优猜测值。 0x5f3759df即十进制的1597463007 0x5f375a86即十进制的1597463174

2147483647

23112^{31}-1。32bit带符号整数(C/C++:int32_t,或大部分IDE中的int)的最大值,会被一些无聊的程序员当作无穷大使用。

4294967296

2322^{32}。有时4294967295=23212^{32}-1会作为32bit无符号整数(C/C++:uint32_t)的最大值。

68539

二进制为0b10000101110111011,即0x10BBB,且为素数。

9223372036854775807

26312^{63}-1。64bit带符号整数(C/C++:int64_t)的最大值。可是由于这个数太大,很少被留意

18446744073709551615

2642^{64}。64bit无符号整数(C/C++:uint64_t)的最大值。也是64位系统的最大可用内存大小。

1 条评论

  • @ 2024-3-1 19:16:38

    C++常用名词==c++梗百科

    👍 2
    ❤️ 2
    🕊️ 2
    👀 2
    🤔 2
    😄 2
    • 1