小编cod*_*ker的帖子

求解无流量游戏的算法

我最近开始玩Flow Free Game.

将匹配的颜色与管道连接以创建流程.配对所有颜色,并覆盖整个板,以解决Flow Free中的每个难题.但请注意,如果管道交叉或重叠,管道会断裂!

我意识到这只是给定点对之间的路径寻找游戏,条件是没有两条路径重叠.我有兴趣为游戏编写解决方案,但不知道从哪里开始.我想过使用回溯,但对于非常大的电路板尺寸,它会有很高的时间复杂度.

有没有合适的算法来有效地解决游戏问题.可以用启发式方法解决问题有帮助吗?请告诉我从哪里开始,我将从那里开始.

我通常会在大多数电路板上观察到

  1. 对于最远点,您需要沿着边缘沿着路径行进.
  2. 对于彼此最近的点,如果有的话,请遵循直接路径.

这是正确的观察,是否可以用它来有效地解决它?

algorithm artificial-intelligence graph

20
推荐指数
1
解决办法
1万
查看次数

JS 平滑滚动到页面底部

我有一个 JS 可以用这个从页面底部平滑滚动到顶部,它可以工作:

<script>

     $("a[href='#top']").click(function() {
     $("html, body").animate({ scrollTop: 0 }, "slow");
     return true;
  });
</script>
Run Code Online (Sandbox Code Playgroud)

但是现在我想从顶部到底部平滑滚动,我尝试了这个:

 <script>

     $("a[href='#footer']").click(function() {
     $("html, body").animate({ scrollToBottom: 0 }, "slow");
     return true;
  });
</script>`
Run Code Online (Sandbox Code Playgroud)

它不起作用,它不是一个平滑的滚动。有谁知道这有什么问题?

javascript jquery

12
推荐指数
2
解决办法
1万
查看次数

有多少种不同的表达方式可能?

我遇到了以下练习题.

您可以随意将任何括号放在表达式中,也可以根据需要添加任何括号.但是,在放入括号后,它应该是一个有效的表达式.问题是你可以制作多少个不同的数字?防爆.因为1 - 2 + 3 - 4 - 5你可以得到六个独特的价值如下:

1 - 2 + 3 - 4 - 5 = -7 

1 - (2 + 3) - 4 - 5 = -13

1 - (2 + 3 - 4) - 5 = -5

1 - (2 + 3 - 4 - 5) = 5

1 - 2 + 3 - (4 - 5) = 3

1 - (2 + 3) - (4 - 5) = -3
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何为这个问题制定动态编程方案.我刚开始解决涉及动态编程的问题,似乎无法弄清楚如何解决这个问题.

编辑 …

algorithm dynamic-programming

5
推荐指数
1
解决办法
184
查看次数

CodeJam 2014:如何解决"新彩票游戏"任务?

我想知道新彩票游戏问题的有效方法.

彩票正在改变!彩票曾经有一台机器来生成随机中奖号码.但由于作弊问题,彩票公司决定增加另一台机器.新的中奖号码将是两台机器生成的两个随机数之间的按位与运算的结果.

要找到X和Y的按位AND,请将它们写成二进制; 然后,如果X和Y的相应位都是1,则二进制结果中的一位有1,否则为0.在大多数编程语言中,X和Y的按位AND写为X和Y.

例如:旧机器生成数字7 = 0111.新机器生成数字11 = 1011.中奖号码将是(7和11)=(0111和1011)= 0011 = 3.

通过这一措施,彩票公司希望减少欺诈性索赔的案件,但不幸的是,彩票公司的一名员工泄露了以下信息:旧机器将始终生成小于A的非负整数,新的机器将始终生成小于B的非负整数

卡塔利娜想要赢得这个彩票并试一试,她决定购买低于K的所有非负整数.

鉴于A,B和K,Catalina想知道机器可以通过多少种方式生成一对数字,这将使她成为赢家.


对于小输入,我们可以检查所有可能的对,但如何使用大输入.我想我们首先将二进制数表示为字符串然后检查排列,这将给出小于的答案K.但我似乎无法弄清楚如何计算2个二进制字符串的可能排列.

string algorithm binary

5
推荐指数
1
解决办法
1672
查看次数

复制书籍UVa在线评判动态编程解决方案

我可以使用二进制搜索方法解决复制书籍问题,因为它易于实现.但我刚刚开始解决动态编程问题,我想知道问题的动态编程解决方案

在书籍印刷术发明之前,制作一本书的副本非常困难.所有的内容都必须由所谓的划线员手工重写.划线员得到了一本书,几个月后他完成了复印件.其中一位最着名的抄写员生活在15世纪,他的名字是Xaverius Endricus Remius Ontius Xendrianus(Xerox).无论如何,这项工作非常烦人和无聊.加快速度的唯一方法就是雇佣更多的抄写员.

曾几何时,有一个剧院合奏,想要演奏着名的古董悲剧.当然,这些剧本的剧本分为许多书,演员需要更多的副本.所以他们聘请了许多抄写员来复制这些书.想象一下,你有m本书(编号为1,2,......,m)可能有不同数量的页面(p_1,p_2,...,p_m),你想要制作每本书的一个副本.你的任务是将这些书分为k文士,k <= m.每本书只能分配给一个抄写员,每个抄写员必须获得连续的书籍序列.这意味着,存在越来越多的数字0 = b_0 <b_1 <b_2,... <b_ {k-1} <= b_k = m $,这样我的抄写员就可以得到一系列数字1 + 1和bi.制作所有书籍的副本所需的时间由分配最多作品的抄写员决定.因此,我们的目标是最小化分配给单个划线器的最大页数.您的任务是找到最佳分配.

对于二进制搜索,我正在执行以下操作.

 Low =1 and High = Sum of pages of all books

 Run Binary search

 For Mid(Max pages assigned to a scribe), assign books greedily such that no scribe gets page more than MAX

 If scribes remain without work it means actual value is less than MID, if Books remain …
Run Code Online (Sandbox Code Playgroud)

algorithm dynamic-programming

5
推荐指数
1
解决办法
1175
查看次数

自上而下DP的自下而上DP

我在想是否有一些将自上而下的动态编程转换为自下而上编程的通用方法.

我们能否想出一些机制,它给出了自上而下的DP可以转换为自下而上DP的正式方式.

注意:我是动态编程的初学者,我所看到的自顶向下方法转换为自下而上方法的问题很少.所以我不确定是否可以采用通用方法.

通过概括我的意思是,应该如何初始化数组,应该是数组的大小以及数组应该具有多少维度.

algorithm dynamic-programming

5
推荐指数
2
解决办法
1350
查看次数

最低的共同祖先

我要寻找一个在满二叉树一定的时间实现最低的共同祖先给出了两个节点(父X小于子2*x和2*X + 1).

我的问题是树中有大量节点和许多查询.是否有一个算法,它预处理,以便可以在恒定的时间内回答查询.

使用RMQ查看了LCA,但我不能使用该技术,因为我不能在树中使用这个节点的数组.

有人可以给我快速回答许多查询的算法的有效实现,知道它是完整的二叉树,并且节点之间的关系如上所述.

我所做的是从两个给定节点开始,并连续找到它们的父节点(节点/ 2)保持被访问节点的哈希列表.当我们到达已经在哈希列表中的节点时,该节点将是最低的共同祖先.

但是当存在许多查询时,这种算法非常耗时,因为在最坏的情况下,我可能必须遍历高度30(树的最大高度)才能到达根(最坏的情况).

algorithm optimization tree binary-tree

4
推荐指数
1
解决办法
477
查看次数

从函数LLVM返回Void

我在LLVM IR中创建了一个函数。现在我想创建一个返回指令return void

我看到了功能创建 ReturnInst::(LLVMContext &C, Value *retVal, BasicBlock *InsertAtEnd)

但是我不知道retVal应该怎样才能让它返回return void

llvm llvm-gcc llvm-clang llvm-ir

4
推荐指数
1
解决办法
1813
查看次数

使用给定数量2的表达式的唯一值

给定2的个数,通过构建最多给定数量2的表达式可以形成多少个唯一值,包括加法或乘法.

例如,如果n = 2,我们可以形成2个不同的值:

2 + 2 = 4
2 * 2 = 4
2     = 2
Run Code Online (Sandbox Code Playgroud)

对于n = 3,我们可以形成4个不同的值(2,4,6和8):

2 * 2 * 2 = 8
2 * 2 + 2 = 6
2 + 2 * 2 = 6
2 + 2 + 2 = 6
2 * 2     = 4
2 + 2     = 4
2         = 2
Run Code Online (Sandbox Code Playgroud)

我想知道任何n,不同可能值的数量.

我尝试了所有可能的组合并将它们添加到哈希映射中,但随着n的增加,comibnations呈指数级增长,因此暴力无效.我需要另一种计算方法或广义数学公式.

可以使用动态编程解决,因为我看到许多子问题被重复使用.

algorithm combinations dynamic-programming

3
推荐指数
1
解决办法
117
查看次数

当按下returnKeyType时,react-native调用onSubmit()

我是本机反应的新手。

我现在在键盘上苦苦挣扎。我有TextInput和一个按钮。我想要的是,当用户通过键盘输入输入时,他/她只需单击返回按钮即可进入下一页。因此,我只想在用户单击键盘上的“返回”按钮时调用onSubmit方法。有没有人可以帮助我?

keyboard onsubmit react-native

3
推荐指数
1
解决办法
3572
查看次数