一个奇怪的问题接踵而至:
我在我的学校做一个解决问题的比赛,他们允许我们使用电脑。因为我是比赛中唯一知道如何编码的人,所以我使用 C 和 Pascal 程序来更快地解决问题。我已经通过伪代码到代码的练习、算法、Collatz 猜想验证等来做到这一点。
现在,昨天我正在为下一个挑战(4 月 18 日)进行训练,我看到了一个关于 Young 画面的练习。措辞是这样的(我会尽力从意大利语翻译):
“费雷尔图是分布在一个或多个水平行中的 N 个框的配置,左对齐并配置为使每一行包含的框数与其上的行相同或更少。这些配置也可以通过以下列表来描述盒子的编号,如下图所示:(来源:olimpiadiproblemsolving.it)
Young tableau 是 N 个盒子的 Ferrers 图,其中填充了从 1 到 N 的整数。示例:(来源:olimpiadiproblemsolving.it)
如果框中的数字按行和列按升序排序,则该表是“标准”表(例如:第一、第三和第五表)。在标准表格中,第一行的第一个框始终包含 1。N 始终位于图表其中一行的最左边的框中。
问题
考虑一个 [6,3,2,1,1,1] 费雷尔图:
1)如果 6 固定在第一行的第 6 个盒子上,而 11 固定在第一列的最后一个盒子里,有多少种方法可以您以标准方式完成图表?
2) 如果 7 固定在第 1 行的第 6 个盒子上,而 11 固定在第 1 列的最后一个盒子上,你可以用几种方式以标准方式完成图表?
3)如果8固定在第一行的第6个盒子上,11固定在第一列的最后一个盒子上,你可以用多少种方式以标准方式完成图表?”
我试图编写一个解决方案用一个填充了这些数字的矩阵,并用“-1”作为“行结束字符”,但我被卡住了。我该如何编码“以各种可能的方式填充它,以便画面是标准的?”。