Ограничение Gecode «каждое значение в массиве появляется по крайней мере k раз»

это Gecode C ++

У меня есть значение IntVarArgs длины n, и я хочу выдвинуть ограничение, чтобы каждое значение в массиве появлялось как минимум k раз (или 0)
f.e массив [1, 2, 3, 1, 2, 3, 4, 4, 4] удовлетворяет этому ограничению при k = 2

что я делаю сейчас

for (int i = 0; i < n; i++)
{
count(*this, a, a[i], IRT_GQ, k);
}

Тем не менее, с ростом n количество ограничений растет, но я чувствую, что это может быть выражено одним ограничением. Я также думаю, что закрытие массива для себя не является оптимальным для решателя.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]