#include<bits/stdc++.h>
#define R(x) x=read()
#define int long long
using namespace std;
signed main() {
//	freopen(".in","r",stdin);
	freopen(".out","w",stdout);
	for(int i='a'; i<='z'; ++i) {
		for(int j='a'; j<='z'; ++j) {
			for(int k='a';k<='z';++k)
				cout<<(char)i<<(char)j<<(char)k<<",";
			}
	}
	return 0;
}

通过以上的代码和云斗学院的大力评测,我们发现,三个及以内字母组成的 1757617576 个变量名中,除了我们常用的内置函数,关键字以外,还有以下变量名或函数名无法全局使用。

其中,erf,exp,nan 会在本地报错。

brk,div,dup,ffs,jnf,jnl,ynf,ynl,jn,yn 在本地可以通过,在 Linux 下会报错。

错误示范


brk 在其中是最常错的,它经常被作为 break 的简写。

我在暑假图论训练赛的一道基环树题目中,为了断环进行树形DP,定义了一个叫做 brk 的变量,然后

0分代码
100 分代码


ffs 是在我金秋营时偶然发现的。

当时有一道题目,我写的太史了导致不知道用什么变量名,于是使用 ffs 导致 CE

CE 代码


后果

假设每份代码在全局定义 2020 个变量或函数,我们随机定义三个字符及以内纯字母变量。

粗略计算,每份代码有 20×10/17576=1.13%20\times 10/17576=1.13\% 的概率出错。

以王茂骅为例,他记住这些变量名后,期望得分为 400400

如果他没记住这些变量名,则他的期望得分只有 400×(11.13%)=354.8400\times (1-1.13\%)=354.8 分。

可见记住这些关键字多么有用。

0 条评论

目前还没有评论...