- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们都知道移动设备上的新密码屏幕。它由要连接的点矩阵组成。
唯一密码是积分的向量。这些点可以通过以下限制与自己连接:
最佳答案
由于在无向图中对simple paths进行计数的一般问题是#P-complete,并且正如注释中所指出的那样,推测对self-avoiding paths in a grid进行计数的类似问题也很难,因此,我认为考虑如何解决该问题是适当的。 o((n * n)!)时间(在您的情况下,n = 3)。
我们必须牢记通常适用于“真实”智能手机的其他特殊情况:
visited
为我们之前访问的节点集。通过尝试所有可能的移动并递归,我们可以使用动态编程来计算f。我们可以将
visited
表示为位掩码。这样,可能性的总数将为
sum(i,j, f(i,j, {(i,j)}))
。
n = 2 64
n = 3 389497
n = 4 4350069824956
n = 5 236058362078882840752465
#include <bits/stdc++.h>
#include <cassert>
using namespace std;
typedef long long ll;
const int n = 5;
bool getbit(int visited, int i, int j) { return visited & (1<<(i*n + j)); }
int setbit(int visited, int i, int j) { return visited | (1<<(i*n + j)); }
bool inrange(int i) { return 0 <= i && i < n; }
short dp[n][n][1<<(n*n)];
int mod;
int f(int i, int j, int visited) {
short& res = dp[i][j][visited];
if (res != -1) return res;
res = 1;
for (int di = -i; di <= n-i-1; ++di)
for (int dj = -j; dj <= n-j-1; ++dj) {
if ((di == 0 && dj == 0) || abs(__gcd(di, dj)) != 1) continue;
int i2 = i + di, j2 = j + dj;
while (inrange(i2) && inrange(j2) && getbit(visited, i2, j2)) {
i2 += di;
j2 += dj;
}
if (inrange(i2) && inrange(j2)) {
res += f(i2, j2, setbit(visited, i2, j2));
if (res >= mod) res -= mod;
}
}
return res;
}
int primes[] = {
15013,
15017,
15031,
15053,
15061,
15073,
15077,
15083,
15091,
15101,
};
int main(int argc, char **argv) {
int lo = 0;
int hi = sizeof primes / sizeof *primes - 1;
if (argc > 1) {
stringstream ss; ss << argv[1]; ss >> lo;
hi = lo;
}
for (int p = lo; p <= hi; ++p) {
mod = primes[p];
cout << mod << " " << flush;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
for (ll m = 0; m < (1<<(n*n)); ++m)
dp[i][j][m] = -1;
ll answer = 0;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
answer = (answer + f(i, j, setbit(0, i, j))) % mod;
cout << answer << endl;
}
}
关于combinatorics - 计算可能的 "snake"密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621174/
我遇到了一个(至少对我而言)非常的奇怪情况。 我正在尝试重写蛇,并且移动进行得非常顺利,只有蛇在吃自己,虽然我正在删除 1 段并添加 1 (x + 1 - 1 = x?) 但是蛇消失了,而 Array
这个问题已经有答案了: NoClassDefFoundError: wrong name (8 个回答) 已关闭10 年前。 所以我正在尝试构建一个 2D 贪吃蛇游戏,而且我快完成了。我唯一的问题是,
我最近也一直在尝试做一个绘图墙,或者让这个游戏的蛇穿墙,但我不知道如何编程。如果有人知道如何让蛇穿过墙壁或在边缘画一个框架,你能帮我编程吗?如果有任何添加此游戏的建议,请在此处添加。这些是代码: im
大约两天前,我收到了我的 TI-82 STATS 可编程计算器(实际上更像是一个 TI-83) - 并想用内置的 TI-BASIC 语言编写一个贪吃蛇游戏。 虽然我不得不找出:TI-BASIC 是 极
这个问题在这里已经有了答案: How do I chain the movement of a snake's body? (1 个回答) 11 个月前关闭。 我是 python 新手,现在才开始学习
我制作了一个贪吃蛇游戏(通过尝试遵循YouTuber的代码),方向由WASD控制。然而,当我按下其中一个键时,什么也没有发生。如果我按住它,它会改变方向,但是会有很大的延迟,可能超过一秒。我该如何解决
我们都知道移动设备上的新密码屏幕。它由要连接的点矩阵组成。 唯一密码是积分的向量。这些点可以通过以下限制与自己连接: 一个点只能连接到另外一个点 如果目标点和自由点在同一条线上,则将强制一条线连接到更
我的实体定义如下: @ManyToOne private DomainObject domainObject; 运行代码时出现此错误: 2017-10-30 14:58:52,517 WARN rn
在 Snake 中向上移动意味着你只能向左和向右转。如果你向左移动,你只能向上和向下转动等。目前我有一个问题,如果我正在向左移动(例如),然后我按向上或向下,然后很快按向右,蛇将保持在同一水平并撞到自
我正在用 C++ 编写一个基本的贪吃蛇游戏作为控制台应用程序。它基于“平铺”结构的二维数组。我的问题是:当按下按钮改变蛇行进的方向时,它不会立即工作,而是等待下一个“滴答声”。管理游戏本身的函数如下所
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 4 年前。 Improve t
我只是想弄清楚逻辑并使用 Python 来帮助我做到这一点。最终,我需要使用 ImageJ 宏语言来解决这个问题。 我不知道我是否使用了正确的术语,但我想创建一个“蛇形”计数器。 x = 1 numb
我正在从 youtube 上的 thenewboston 教程中学习如何在 pygame 中制作贪吃蛇游戏,并将其制作成我自己的游戏。游戏中存在一个问题,“苹果”在蛇的位置后面生成,这是我不想要的。
给定一个 5 x 5 网格和一个对象列表(可以是任何东西,例如整数) 我怎样才能以这样的方式填充网格,网格填充的顺序是:A1、A2、A3、A4、A5、B5、B4、B3、B2、B1、C1、C2 等 所以
我正在使用 snake case 为我的 API 构建与 spring boot 的 json 映射。 spring 允许您在 application.properties 文件中轻松定义它: spr
我正在尝试读取 Yaml 模板并动态替换模板中的某些字段并创建一个新的 Yaml 文件。我生成的 yaml 文件应该在所有方面反射(reflect)模板,包括双引号。但是当我使用 snake yaml
我想找到一种方法,在单个容器中将元素包装到一条与前一行相反的新行中,就像一条蛇自己 flex 一样。我无法使用flexbox以及flex-direction和flex-wrap属性的任何组合来实现此结
我正在按照以下视频来设计贪吃蛇游戏: https://www.youtube.com/watch?v=91a7ceECNTc 我正在一步一步地跟踪它,但是当我运行它时,蛇没有显示在我的屏幕上,只显示苹
嗨,我正在尝试使用 2D 数组在控制台上创建一个矩阵。这个想法是输出应该如下所示: 1|8|9 |16 2|7|10|15 3|6|11|14 4|5|12|13 有人知道如何做到这一点吗? 最佳答案
我正在创建一个贪吃蛇游戏我使用二维数组作为我的背框。没有语法错误。我在线程中收到异常。这就是我认为错误所在: java.awt.EventQueue.invokeLater(new Runnable
我是一名优秀的程序员,十分优秀!