警钟敲烂
  • 板块灌水区
  • 楼主sqh_let_it_be
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/22 07:27
  • 上次更新2023/11/2 12:02:47
查看原帖
警钟敲烂
363061
sqh_let_it_be楼主2023/10/22 07:27

考前我不知道怎么想的,就有种预感,发帖问了一句有哪些变量名不合法但是编译器不报错的。here

结果,今年:

/*我的CSP-S T1 代码
Luogu UID:363061
ID:sqh_let_it_be
RP++
score++
*/
#include<bits/stdc++.h>
using namespace std;
int lock[9][10],cf[9][10],n;
int mm[25],zj[11][11][11][11][11],ans;
map<int,int> da;
inline int read()
{
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){s=s*10+ch-48;ch=getchar();}
	return s*w;
}
int main()
{
	freopen("lock.in","r",stdin);
	freopen("lock.out","w",stdout); 
	n=read();
	for(int i=1;i<=n;i++)
		for(int j=1;j<=5;j++)
			lock[i][j]=read();
	for(int i=1;i<=n;i++)
	{
		int tem1=lock[i][1];
		int tem2=lock[i][2];
		int tem3=lock[i][3];
		int tem4=lock[i][4];
		int tem5=lock[i][5];
		for(int k=1;k<=9;k++)
		{
			// 单个转 
			zj[(tem1+k)%10][tem2][tem3][tem4][tem5]++;
			zj[tem1][(tem2+k)%10][tem3][tem4][tem5]++;
			zj[tem1][tem2][(tem3+k)%10][tem4][tem5]++;
			zj[tem1][tem2][tem3][(tem4+k)%10][tem5]++;
			zj[tem1][tem2][tem3][tem4][(tem5+k)%10]++;
			//相邻转
			zj[(tem1+k)%10][(tem2+k)%10][tem3][tem4][tem5]++;
			zj[tem1][(tem2+k)%10][(tem3+k)%10][tem4][tem5]++;
			zj[tem1][tem2][(tem3+k)%10][(tem4+k)%10][tem5]++;
			zj[tem1][tem2][tem3][(tem4+k)%10][(tem5+k)%10]++;
		}
	}
	for(int a=0;a<=9;a++)
		for(int b=0;b<=9;b++)
			for(int c=0;c<=9;c++)
				for(int d=0;d<=9;d++)
					for(int e=0;e<=9;e++)
						if(zj[a][b][c][d][e]==n)
							ans++; 
	printf("%d\n",ans);
	fclose(stdin);
	fclose(stdout);
	return 0;
}

乍看没问题,本地 Windows 运行也没问题。

提交 CE 。

为什么呢?

因为我使用了 lock 作为变量名,而 lock 与 y1 类似,不能用作变量名。

如果我把 lock 换成其他的呢,比如我换成 sqh,换成 luogu?

AC。

于是,140->40。

破防了。

我以后再拿英译做变量名我就是**

2023/10/22 07:27
加载中...