繁体   English   中英

如何解决中间块问题(考虑边缘块并将任何块留在行中间)

[英]how to solve the middle block problem(consider edge blocks and leave any block in the middle of row)

我需要解决此算法问题。 在该图中,有许多行带有不同的编号。 块。 每个块是好是坏。 没有的块。 1对它的好处是阻止,休息都不好。 我需要在2中对这些块进行分组,以便确定这些分组的结果是好是坏。 如果以2为一组,则将检查所有块上是否都带有“ 1”。 如果是,则结果块为好,否则为坏。

问题:在对块进行分组时,我总是必须考虑边缘上的块。 如果该行具有奇数个块(假设为9)并且我将2个组设为一组,则必须忽略中间块(第5个块),则边缘上的块应相对于中间块具有优先级。 我不知道如何解决该问题,因为我对在出现奇数时忽略中间块的部分感到困惑。 它可以忽略任何块(靠近中间块),但必须考虑边缘上的块。

因此,基本上,首先我需要根据分组大小为2的行来查找行是否具有奇数/偶数块。 的块位于此处,离开中间的块,并在边缘形成一个块,然后根据结果的好坏找到结果。

在输入中,我具有每个块的X和Y坐标,以及块的好坏,它的信息。

在此处输入图片说明

似乎丢掉确切的中间块并不是一个好的解决方案。 一排7号字样,您应该可以制作3对,但如果丢掉中间的1对,则只能得到两对可用。

尝试从两端交替取下积木:从左开始一对,然后从右开始一对,然后从左向内再进入另一对。 当两个指针(或索引)在中间交叉时,该行就完成了。 必要时,您将丢弃尽可能靠近中间的块,并且偶数与奇数不需要任何特殊情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM