大佬救救我
查看原帖
大佬救救我
191716
Xyyo楼主2022/7/17 16:32

本蒟蒻真的找不到bug在哪里了TAT

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int N=105;
int n,sum=0,s=0;
bool a[N][N],b[N][N];
void bhh(int x,int y){
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x-k][y-k]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x-k][y+k]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x+k][y-k]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x+k][y+k]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x][y+k]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x+k][y]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x-k][y]=true;
	}
	for(int k=0;k<n;k++){
		if(x<0||x>=n||y<0||y>=n){
			break;
		}
		b[x][y-k]=true;
	}
}
void print(){
	s=0;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(a[i][j]==true){
				s++;
			}
		}
	}
	if(s==n){
		sum++;
		for(int j=0;j<n;j++){
			for(int i=0;i<n;i++){
				if(a[i][j]==true&&sum<=3){
				    cout<<i+1<<" ";
				}
			}	
		}
		cout<<endl;
	}
}
void dfs(int x,int y){
	a[x][y]=true;
	print();
	bhh(x,y);
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cout<<a[i][j];
		}
		cout<<endl;
	}
	cout<<endl;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
		    if(b[i][j]==false){
		    	dfs(i,j);
		    }
		}
	}
	return ;
}
int main()
{
	cin>>n;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			memset(a,0,sizeof(a));
			memset(b,0,sizeof(b));
			dfs(i,j);
		}
	}
	cout<<sum;
	return 0;
}

哭了,给大佬磕一个

2022/7/17 16:32
加载中...