蒟蒻求助 可以让全机房的人关注dalao
查看原帖
蒟蒻求助 可以让全机房的人关注dalao
366430
AndyC楼主2022/10/23 19:19

P092 问题肯定处在我的test函数里面,单独用后两行可以过样例 求各位dalao指导 可以让全机房同学关注dalao(大概5人....)

#include<bits/stdc++.h>

using namespace std;
bool use[28];
int n,a[28];

string x,y,z;

bool test(){
	
	for(int i=0;i<n;i++){//ok
		int q,w,e;
		q=a[x[i]-'A'+1];//ok
		w=a[y[i]-'A'+1];
		e=a[z[i]-'A'+1];
		if((q+w+1)%n==e||(q+w)%n==e){
			return true;
		}
	}
	return false;
	//if(a[1]==1&&a[2]==0&&a[3]==3&&a[4]==4&&a[5]==2) return true;
	//return false;
}

void dfs(int now){
	if(now==n+1){
		if(test()){
			for(int j=1;j<=n;j++){
				cout<<a[j]<<' ';
			}
			exit(0);
		}
		return;
	}
	for(int i=0;i<n;i++){//0 1 2 3 4 5
		if(!use[i]){
			a[now]=i;
			use[i]=true; 
			dfs(now+1);
			use[i]=false;
		}
	}
	return;
}

void work(){
	cin>>n;//>>x>>y>>z; 
	scanf("%s",&x);
	scanf("%s",&y);
	scanf("%s",&z);
	dfs(1);
	
}

int main(){
	work();
}
2022/10/23 19:19
加载中...