警示后人
  • 板块灌水区
  • 楼主fenglaiguo
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/26 00:50
  • 上次更新2023/11/26 10:15:40
查看原帖
警示后人
775951
fenglaiguo楼主2023/11/26 00:50

上周闲来无事,看了一下之前提高组写的代码,当时出考场都觉得第一题AC了,出来却是零分。结果发现第一题当时多加了一个循环,那个循环是因为我当时过不了第二个样例才加的,结果导致全部WA掉了。像我这种已经老了,希望后人有时拿不满的题不要过于追求样例,拿到应得的分。(第一段代码是零分代码,第二段代码是80分的)

#include<bits/stdc++.h>
using namespace std;
int a[101],b[101],c[101],d[101],e[101],vis[11][11][11][11][11];
int main()
{
//	freopen("lock.in","r",stdin);
//	freopen("lock.out","w",stdout);
	int n,sum=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i]>>b[i]>>c[i]>>d[i]>>e[i];
		vis[a[i]][b[i]][c[i]][d[i]][e[i]]=-10;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=9;j++)
		{
			if(j!=a[i])
			{
				vis[j][b[i]][c[i]][d[i]][e[i]]++;
				if(vis[j][b[i]][c[i]][d[i]][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=b[i])
			{
				vis[a[i]][j][c[i]][d[i]][e[i]]++;
				if(vis[a[i]][j][c[i]][d[i]][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=c[i])
			{
				vis[a[i]][b[i]][j][d[i]][e[i]]++;
				if(vis[a[i]][b[i]][j][d[i]][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=d[i])
			{
				vis[a[i]][b[i]][c[i]][j][e[i]]++;
				if(vis[a[i]][b[i]][c[i]][j][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=e[i])
			{
				vis[a[i]][b[i]][c[i]][d[i]][j]++;
				if(vis[a[i]][b[i]][c[i]][d[i]][j]==n) sum++;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(vis[a[i]][b[i]][c[i]][d[i]][e[i]]) sum++;
	}
	memset(vis,0,sizeof(vis));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=9;j++)
		{
			vis[(a[i]+j)%10][(b[i]+j)%10][c[i]][d[i]][e[i]]++;
			if(vis[(a[i]+j)%10][(b[i]+j)%10][c[i]][d[i]][e[i]]==n)
			{ 
				sum++;
			}
		}
		for(int j=1;j<=9;j++)
		{
			vis[a[i]][(b[i]+j)%10][(c[i]+j)%10][d[i]][e[i]]++;
			if(vis[a[i]][(b[i]+j)%10][(c[i]+j)%10][d[i]][e[i]]==n)
			{
				sum++;
			}
		}
		for(int j=1;j<=9;j++)
		{
			vis[a[i]][b[i]][(c[i]+j)%10][(d[i]+j)%10][e[i]]++;
			if(vis[a[i]][b[i]][(c[i]+j)%10][(d[i]+j)%10][e[i]]==n)
			{ 
				sum++;
			}
		}
		for(int j=1;j<=9;j++)
		{
			vis[a[i]][b[i]][c[i]][(d[i]+j)%10][(e[i]+j)%10]++;
			if(vis[a[i]][b[i]][c[i]][(d[i]+j)%10][(e[i]+j)%10]==n)
			{ 
				sum++;
			}
		}
	}
	cout<<sum<<endl;
}

#include<bits/stdc++.h>
using namespace std;
int a[101],b[101],c[101],d[101],e[101],vis[11][11][11][11][11];
int main()
{
//	freopen("lock.in","r",stdin);
//	freopen("lock.out","w",stdout);
	int n,sum=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i]>>b[i]>>c[i]>>d[i]>>e[i];
		vis[a[i]][b[i]][c[i]][d[i]][e[i]]=-10;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=9;j++)
		{
			if(j!=a[i])
			{
				vis[j][b[i]][c[i]][d[i]][e[i]]++;
				if(vis[j][b[i]][c[i]][d[i]][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=b[i])
			{
				vis[a[i]][j][c[i]][d[i]][e[i]]++;
				if(vis[a[i]][j][c[i]][d[i]][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=c[i])
			{
				vis[a[i]][b[i]][j][d[i]][e[i]]++;
				if(vis[a[i]][b[i]][j][d[i]][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=d[i])
			{
				vis[a[i]][b[i]][c[i]][j][e[i]]++;
				if(vis[a[i]][b[i]][c[i]][j][e[i]]==n) sum++;
			}
		}
		for(int j=0;j<=9;j++)
		{
			if(j!=e[i])
			{
				vis[a[i]][b[i]][c[i]][d[i]][j]++;
				if(vis[a[i]][b[i]][c[i]][d[i]][j]==n) sum++;
			}
		}
	}
	memset(vis,0,sizeof(vis));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=9;j++)
		{
			vis[(a[i]+j)%10][(b[i]+j)%10][c[i]][d[i]][e[i]]++;
			if(vis[(a[i]+j)%10][(b[i]+j)%10][c[i]][d[i]][e[i]]==n)
			{ 
				sum++;
			}
		}
		for(int j=1;j<=9;j++)
		{
			vis[a[i]][(b[i]+j)%10][(c[i]+j)%10][d[i]][e[i]]++;
			if(vis[a[i]][(b[i]+j)%10][(c[i]+j)%10][d[i]][e[i]]==n)
			{
				sum++;
			}
		}
		for(int j=1;j<=9;j++)
		{
			vis[a[i]][b[i]][(c[i]+j)%10][(d[i]+j)%10][e[i]]++;
			if(vis[a[i]][b[i]][(c[i]+j)%10][(d[i]+j)%10][e[i]]==n)
			{ 
				sum++;
			}
		}
		for(int j=1;j<=9;j++)
		{
			vis[a[i]][b[i]][c[i]][(d[i]+j)%10][(e[i]+j)%10]++;
			if(vis[a[i]][b[i]][c[i]][(d[i]+j)%10][(e[i]+j)%10]==n)
			{ 
				sum++;
			}
		}
	}
	cout<<sum<<endl;
}
2023/11/26 00:50
加载中...