Динамическое программирование -определение состояния

Недавно я столкнулся с этой проблемой в учебной программе по динамическому программированию и, честно говоря, понятия не имею, как определить подходящее состояние.

Вам дано N(1 <= N <= 70 )абзацев и M(1 <= M <= N )цифр. Каждый параграф i требует PL _i(1 <= PL _i <= 100 )строк и ссылок не более одного рисунка. На каждый рисунок ссылаются ровно один раз (, т. е. никакие два абзаца не могут ссылаться на один и тот же рисунок, и для каждого рисунка есть абзац, ссылающийся на него. )Для каждого рисунка требуется PF _i(1 <= PF _i <= 100 )строк.

Задача состоит в том, чтобы распределить эти рисунки и абзацы на бумаге в том порядке, в котором они даны, где одна бумага умещается не более чем на L строк. Ни один абзац или рисунок не может быть слишком большим, чтобы поместиться на одном листе.Если абзац x , размещенный на бумаге x _p , ссылается на рисунок y , тогда y должен быть размещен либо на бумаге x _p -1 или x _p или x _p + 1 .

Нам нужно найти минимальное количество строк (и, следовательно, страниц ), которые нужно выделить, чтобы распределить все рисунки и абзацы. Любая помощь будет очень признательна. Заранее спасибо!

8
задан Chris 30 June 2012 в 09:55
поделиться