目录
数字满格
每个格子有8个邻居(部分格子可能只有3-7个邻居),按照这种关系把100个格子转化成无向图,寻找此图的曼哈顿链。

到90是比较容易的,到100就比较难了。

数阵迷踪
上下或左右相邻的2个格子,如果gcd>1则可以连一条线(也可以不连),把所有格子连成一条简单链路。

我的思路就是先把能连的线都连了,再去挑选链路。


如果感觉没法连成链路,那一定是还有没发现的连线(除非题目出错了)
比如这个:

可以用这个代码看下哪些连线是缺的:
//最大公约数
static long long gcd(long long a, long long b)
{
if (b == 0)return a;
return gcd(b, a % b);
}
int main()
{
ios::sync_with_stdio(false);
int n = 8;
vector<vector<int>>v(n,vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)cin >> v[i][j];
}
for (int i = 0; i < n; i++) {
for (int j = 1; j < n; j++)if (gcd(v[i][j], v[i][j - 1]) > 1)cout << v[i][j - 1] << " " << v[i][j] << endl;
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < n; j++)if (gcd(v[i][j], v[i-1][j]) > 1)cout << v[i-1][j] << " " << v[i][j] << endl;
}
return 0;
}
补上连线:

果然补上几条连线就能连成链路。
数字迷途
最强大脑同款项目。
把数字补齐,使得1到n*n构成一条哈密顿链路。


我的策略是先从边角开始往中间拼。
文章介绍了两种基于数字的图形谜题。在数字满格中,通过构建无向图的曼哈顿链来解决100个格子的排列问题;而在数阵迷踪中,利用最大公约数判断相邻格子是否连接,形成简单链路。提供了一段C++代码用于检查缺失的连线。最后,数字迷途挑战玩家补全数字以形成一条哈密顿链路,建议从边角开始拼凑。
1164

被折叠的 条评论
为什么被折叠?



