为什么会这样》???
查看原帖
为什么会这样》???
765990
ultimate_regular楼主2023/11/4 23:30
#include <bits/stdc++.h>
using namespace std;
int n;
int a[10][8],b[10],c[10],ans;
void dfs(int step)
{
	if(step>5){
		int sum=0;
		for(int i=1;i<=n;i++)
		{
			int id1=0,id2=0;
			for(int j=1;j<=5;j++)
			{
				if(a[i][j]!=b[j])
				{
					if(id1==0){
						id1=j;
					}
					else
					{
						if(id2==0)
							id2=j;
						else
							return ;
					}
				}
				if(id1==0)
					return ;
				if(id2!=0)
				{
					if(id2-id1!=1)
						return ;
					if((a[i][id2]-b[id2]+10)%10!=(a[i][id1]-b[id1]+10)%10)
						return ;
				}
  				sum++;
			}
		}
		if(sum==n)
			ans++;
		return ;
	}
	for(int i=0;i<=9;i++)
	{
		b[step]=i;
		dfs(step+1);
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=5;j++)
			cin>>a[i][j];
	dfs(1);
	cout<<ans;
	return 0;
}

求大佬指正

2023/11/4 23:30
加载中...