P1896 TLE
查看原帖
P1896 TLE
1127401
JeremyXie楼主2024/1/24 17:42

50pts TLE 求助

#include <bits/stdc++.h>
using namespace std;
long long ans=0;
bool b[10][10];
short n,m;
int jie(int a){
	if(a==1) return 1;
	return a*jie(a-1);
}
void dfs(int d){
	if(d==m){
		ans++;
		return;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(b[i][j]==0&&b[i-1][j]==0&&b[i+1][j]==0&&b[i][j-1]==0&&b[i-1][j-1]==0&&b[i+1][j-1]==0&&b[i][j+1]==0&&b[i-1][j+1]==0&&b[i+1][j+1]==0) {
				b[i][j]=1;
				dfs(d+1);
				b[i][j]=0;
			}
		}
	}
	return;
}
int main() {
	cin>>n>>m;
	for(int i=1;i<10;i++) {
		for(int j=1;j<10;j++) {
			b[i][j]=0;
		}
	}
	dfs(0);
	ans/=jie(m);
	cout<<ans;
  return 0;
}

2024/1/24 17:42
加载中...