问题标签 [top-down]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
158 浏览

algorithm - 如何实现一种算法以在 O (k) 时间内合并两个具有 n=2^k 个元素的堆?

但是,我什至不知道这个问题意味着什么。

这只需要最少 O (n) 的时间来合并两个排序的数组,我不知道如何在 O (k) 时间内合并。

这总共有三个与之相关的问题:

这个问题的目的是探索以自上而下的方式高效构建标准堆的可能性。

  1. 给出合并两个标准堆的算法的高级描述,每个标准堆都包含 n = 2^k 个元素。该算法应该在 O(k) 时间内运行。

  2. 使用第 1 部分中指定的子例程,给出构建 2^n 个元素的堆的递归或迭代算法。

  3. 写下第 2 部分中指定的算法的运行时间方程,求解。

0 投票
0 回答
65 浏览

dynamic-programming - ACODE - spoj:建议我的方法可能有什么问题

我从 spoj 尝试了这个问题 ACODE。如果你能建议我,我的方法可能有什么问题!问题链接:http ://www.spoj.com/problems/ACODE/

我的做法:

对 k=1 或 k=2 的每个索引值使用自上而下的 DP.Memoization。

0 投票
3 回答
308 浏览

search - 自上而下的树搜索和替换

我在编写树搜索和替换算法时遇到问题。输入树包含任意嵌套的数据项——例如,tree = (1 (2 3 (4 (5)) 6)),其中 1 是根,并且向下的每一级都嵌入在括号中。所以 1 在第 1 级;2、3、4、6 位于第 2 层(低于 1),5 位于第 3 层(低于 4)。整个树的结构使得任何列表的汽车始终是一个数据项,其后可以是其他数据项或子树。问题是在树中找到与输入项匹配的数据项(在我的特定情况下为#'equal),并用给定的新子树替换现有的旧项——例如,(交换子树旧项树...)。因此,树会随着每次替换而增长。但是,搜索必须在树中自上而下进行,仅交换找到的第一个此类旧项目,然后退出。

一些观察?:1)对于二叉树,搜索顺序(自上而下的访问)通常称为级别顺序,其他可能的搜索顺序是前序、中序和后序,但我的树不一定是二进制的。2)像广度优先搜索算法这样的东西可能会起作用,但是节点是通过树遍历选择的,而不是生成的。3) 标准的“替代”功能仅适用于序列,不适用于树。4)“subst”函数适用于树,但似乎以深度优先的方式遍历替换所有匹配项,并且没有 :count 关键字(如“substitute”)在第一次替换后停止。

任何帮助编码甚至构建一个好的方法都将不胜感激。(也很好奇为什么 common-lisp 没有更多的列表和向量的“树”函数。)

0 投票
0 回答
23 浏览

strategy-pattern - 方法处理引入“自下而上”和细化“自上而下”的数据

(这个问题是关于数据提炼的策略高级方法,而不是编程,所以如果它是题外话......提前抱歉,但我找不到更好的 stackexchange 社区)

因此,我们处于一个(典型)场景中,新数据由大量用户引入(自下而上的贡献),并由版主/管理员/受信任的用户定期提炼、纠正、分类和丰富(自上而下提炼)。

这种情况在网站中很常见(stackexchangetags就是一个很好的例子)

是否有“最佳策略”来最小化工作量并最大限度地提高数据质量?

这里有些疑问:

  1. 强制数据通过验证过程或让它们填充系统(接受一定程度的不正确/不一致)并在出现时修复/丰富最流行的数据。
  2. 自上而下用尽可能多的数据预填充系统,以预测自下而上的到达。
  3. 帮助自下而上的条目与其他数据保持一致(自动完成和用户的意思框)
0 投票
1 回答
1755 浏览

java - 如何在 LibGdx 中为自上而下的游戏扩展背景?

在自上而下的游戏中扩展背景的正确方法是什么?我使用了 LibGdx 框架。自上而下游戏的任何想法或教程。我的背景是 PNG 格式和 720x1280 肖像的屏幕。我在扩展背景时遇到了问题。我希望相机跟随角色并且背景会扩展。我怎么能那样做?这是屏幕截图

https://i.stack.imgur.com/jl03R.png

这是我的代码

为了显示背景,我使用了这个

在渲染中

背景正在滚动,但相机不跟随玩家(猫)

GameScreen 的源代码 http://pastebin.com/Dxfx9f65

非常感谢和提前任何帮助或建议。:)

0 投票
0 回答
113 浏览

parsing - AntlrGrammar.g4::: 以下几组规则是相互左递归的[子查询]

在 Antlr4 中,据说支持直接左递归。我可以用下面给出的语法中的 [expr]-rule 来验证这一点。无论如何,ANTLR4 的语法分析为 [子查询] 规则抛出错误,该规则是该语法中的第二个直接递归规则:

再次,子查询规则是递归的。没有间接递归。

不同子查询代码的合法语法输入行将是:

等等

递归具有 TERMINALVARIANT 给出退出子句,因此递归是/可以是有限的。为什么我会收到此错误?如何重写语法以避免它?

0 投票
2 回答
299 浏览

c++ - 具有 k 个 1 位的最小 n 位整数 c,它是 g、h 位设置为 1 的两个 n 位整数之和(动态规划)

我正在尝试解决以下问题:

找到最小的 n 位整数 c,它有 k 个 1 位,并且是两个 n 位整数的和,其中 g、h 位设置为 1。 g, h, k <= n

首先,这里的n位整数意味着我们可以使用所有n位,即最大值。这样一个整数的值为2^n - 1。所描述的整数可能根本不存在。很明显,这种情况k > g + h没有解决方案,g + h = k答案就是2^k - 1(第一位k是 1 位,k - n前面是零)。

至于程序应该做什么的一些例子:

在我看来,这是一个动态规划问题,我选择了以下方法:让dp[g][h][k][n][c]是所描述的整数,并且c是用于携带的可选位。我尝试根据最低位重建可能的总和。所以,dp[g][h][k][n + 1][0]是最小的

同样,dp[g][h][k][n + 1][1]是最小值

这个想法并不难,但我对这些事情并没有真正的经验,而且我的算法即使对于最简单的情况也不起作用。我选择了自上而下的方法。我很难考虑所有极端情况。我真的不知道我是否正确选择了递归基础等。我的算法甚至不适用于最基本的情况g = h = k = 1, n = 2(答案是01 + 01 = 10)。不应该有答案,g = h = k = 1, n = 1但是算法给出了1(这基本上是前一个示例输出1而不是 的原因2)。所以,这是我糟糕的代码(只有非常基本的 C++):

0 投票
1 回答
235 浏览

python - Dynamic programming Topdown approach - minimum cost in a matrix (in python)

I have to implement some functions in python to find the minimum cost in a matrix.We must go down or right and to an adjacent number so at each step we have only two possible choices.

i wrote the fisrt version (naive one) which works:

But when i want to optimize it using memoization i can't find the right answer. I tried different ways but i wasn't able to do it correctly. Here is what i wrote:

Here is an example :

The naive version gives me the right anwser which is 18 -> 2,1,4,1,1,3,3,2,1 But the second one gives me 12

Thanks in advance for any help :)

EDIT : I call the naive version like minimal_trajectorry_helper(matrix, 0, 0) and the optimized one like dptd_minimal_trajectorry_helper(matrix, m, n, track) where track is initialized by : track = [[-1]*5]*5

0 投票
1 回答
740 浏览

c# - 2D 深度系统方法 XNA C#

我正在创建一个 2D 自上而下的 RPG 游戏,例如《塞尔达传说:与过去的链接》。

当玩家被绘制时,我想更新树深度,以便当玩家 Y 位置高于或低于树 Y 位置时它在玩家上方和下方,我认为树是否在顶部应该由玩家 Y 位置,更低或更高。有可能这样做吗?我可以在更新方法中更改图层深度吗?

我不确定你能不能。我在编码时不是很有经验。如果即使不使用 spriteBatch 层深度也有正确的方法,我将不胜感激。

我发现了如何在

方法。

我正在尝试做的如下图所示

树前的女人

树后的女人

我用来将树木与草砖分开的代码使用如下图层深度:

平铺绘制方法

设置了浮点值

具有值和含义的绘制图像线

0 投票
1 回答
872 浏览

c++ - c ++播放器与SFML的碰撞

我和我的朋友正在开发一个自上而下的益智游戏。
我们已经实现了一个可以行走和碰撞墙壁的玩家类,但问题在于碰撞本身。

例如:
当玩家撞到墙壁右侧时,我们将x轴上的速度设置为0,然后玩家停止。但在那之后,如果用户按下up键,播放器会向上移动一个像素,然后再次停止。
之后,如果你一直交替按右和上,玩家就会一个像素一个像素地穿过墙壁。

玩家穿过墙壁

这是玩家的碰撞检测:

快速说明:intersect(x, y, w, h)函数是播放器类的一部分,如果您需要查看它,请告诉我们。

如果您回复我们的代码,或者将我们链接到我们可以找到解决方案的地方,我们将很高兴。

因此,感谢您的帮助,如果需要,请提出问题,Arad 和 Ron。