end; Итак, а


end; Итак, а что же дальше? Очевидно, что приведенная схема решения работает только для небольших значений N, особенно если есть ограничения (а они всегда есть) на время тестирования задачи. Предварительная обработка (до первого вызова процедуры Solve), заключающаяся в проверке, есть ли жители, которые представляют все партии (это первый шаг). procedure One(t:Nint;Q:Sset);{проверяет - есть ли среди первых t элементов массива А такой, что A[i].part совпадает с Q} var i:Nint; begin i:=1; while (i<=t) and (A[i].part<>Q) do Inc(i); if i<=t then begin Rbest:=Rbest+[i]; Rt:=[] end; end; Первый вызов этой процедуры - One(N,[1..N]), осуществляется в блоке предварительной обработки. Рассмотрим пример. Президенты Члены партии 1 2,3 2 4 3 2 4 1 Идея. Третий житель состоит в партиях 1 и 3, второй - в 1, 2 и 3. Есть “вхождение”, третий житель менее активный, исключим его. Однако из примера проглядывает и другая идея - появилась строка,
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz