<分区>
对于那些不熟悉万智牌(它通常被非正式地称为)的人来说,施法成本是表示施放“法术”所需的“法力”的值。法力来自不同的来源,并且为每种类型的法力分配了特定的颜色。例如,一个假设的“蓝色”法术可能需要 2 点蓝色法术力和 2 点任何颜色的法术力,而另一个法术可能需要 1 点绿色法术力、2 点红色法术力和 3 点任何颜色的法术力。法术力颜色的数量是有限的(红色、蓝色、绿色、黑色、白色和无色(与法术力颜色无关,换句话说,无色的施法成本可以由任何颜色的法术力支付)。因此,假设我们有一个花费 2 绿色、1 蓝色和 3 无色的咒语,它只能用 2 绿色、1 蓝色和 3 的任意颜色组合来支付。在程序中有什么有效的方法来表示它?我目前正在用 Java 编写此代码,但一般建议也很好。如果您有任何问题,请发表评论,如果需要,我会澄清我的问题。