题目标签是广搜,可是我不知道怎么搜
查看原帖
题目标签是广搜,可是我不知道怎么搜
1097884
shuhao楼主2024/8/5 15:14

写的一个暴力

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const int N = 2e3;
int n, m, x, y, cnt = 0;
ll a[N+10][N+10], b[N+10][N+10];
ll gcd(ll num1, ll num2) {return (num2==0?num1:gcd(num2,num1%num2));}
const int dx[4] = {+1,-1, 0, 0};
const int dy[4] = {0, 0, +1,-1};

int main() {
	cin >> n >> m;
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
			cin >> a[i][j];
	cin >> x >> y;
	
	while(a[x][y] != 1) {
		for(int i = 1; i <= n; i++)
			for(int j = 1; j <= m; j++) {
				b[i][j] = a[i][j];
				for(int k = 0; k < 4; k++) {
					b[i][j] = gcd(b[i][j], a[i+dx[k]][j+dy[k]]);
				}
			}
		memcpy(a, b, sizeof(b));
		cnt++;
		if(cnt > 50) {
			cnt = -1;
			break;
		}
	}
	cout << cnt;
	
	return 0;
}

有人能告诉我怎么搜吗?

2024/8/5 15:14
加载中...