это 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 количество ограничений растет, но я чувствую, что это может быть выражено одним ограничением. Я также думаю, что закрытие массива для себя не является оптимальным для решателя.
Задача ещё не решена.
Других решений пока нет …