MAXimal

���������: 11 Jul 2008 15:37
�������������: 11 Jul 2008 17:13

���������� [������]

���������� ����������� �� ���� ��������-����������� �������������

��� ���������� ���� G. ��� ������ ������� ������ ���� ������ � ���. ��������� ����� ������������� ����������� ����, �.�. � ���������� ������ ����� ���������� ������.

���� �� ������ � ������� ��������, ���������� �� ��������� ����, ������� ����� �������� ����������� �������.

��������

��� �������� ����������� �����. ����������� ������� ������ ���� � ������� �������� (������ ������, �������������) �����, � �������� � ����������� ����� �������� ����.

������������, ��� ���������� ��� ���� ������������ (� ����� ������ ���������� ����) ������������� ����� � ����������� � ����� ������ ����� ����� ���������� ������ (�������� �� ��, ��� ����� ���������� �� ���������� ������ �� ���������� ��� ����).

����� �������, ���������� ����� �������� �����:

int n;
vector < vector<int> > g (n);
vector used (n);
vector<int> order (n); // ������ ������, ��������������� �� ����
... ������ ...

for (int i=0; i<n; ++i) {
	int v = order[i];
	used.assign (n, false);
	try_kuhn (v);
}

������� try_kuhn() ������ ���� ������ ��������� �� ��������� ����.

��������������

�������� �������� ��������� ������ ���������.

������� M - ��� ������������� ���� (S,I), ��� S - ��������� ���������, I - �������� ��������� ����������� ��������� S, ������� ������������� ��������� ��������:

  1. ��������� S ��������.
  2. ��������� I �������� ��������������, �.�. ���� �����-�� ��������� ����������� I, �� ��� ��� ������������ ����� ����������� I.
  3. ��������� M �������� ��������� ������, �.�. ���� A∈I, � B∈I, � |A|<|B|, �� ������� ����� ������� x∈A-B, ��� A∪x∈I.

�������� ��������� I ���������� ������������ ��������������.

������� ���������� ����������, ���� ��� ������� �������� x∈S �������� ��������� ���. ����� ������������ ���������� ����� ����� ��� ���������.

�������, ��������� ������� � ������ ���������� ���������: ����� �������� ����������� �����, �.�. ����������� ������������ � ���������� �����, ����� ����������� �����: ������� � ������� ������������, ����� ��������� (����, �������, ������� ������� ����� �������� ��� ��������� �������������) ��� �������� �� ������ � ������� ���������� (������, �������������) �� �����:

������������� ��������� S �� ������������� ����;
ans = [];
foreach (x in S)
	if (ans ∪ x ∈ I)
		ans = ans ∪ x;

������������, ��� �� ��������� ����� �������� �� ������� ������������ � ���������� �����.

������ �������, ��� ���� ������ - �� ��� ����, ��� ���������� �������.

����� S - ��������� ���� ������ ������ ����. ����� ������ ���� ������ � ���������� ����� � �������� ������������ ������ ������ ����, �������� � ������������ ������� ������������� ����� ������������ S, ������� ����� ��������� ���������� ������ ������ ����. ����� ����� ���������� � �������� ������������ (�� ��������� ���������� ������ - � �������������), �������, ���� � �� ����� �����������, ������ ������ ��� ����� ����������.

����� ��������� ��������� I ��� ��������� ����� ����������� ��������� S, ��� ������� ������� ���� �� ���� ��������������� �������������.

�����, ��� ������� �������� S, �.�. ��� ������ ������� ������ ����, �� ������� �������� ��������� ���. ������ ��� ������������, ��� ��� � ��������� � ������ ������ ���������, ������������ ��� ����� ����� ��������� � ���.

����� ������ � ���������� ������������� ����������� ���� ������ ����������������� ��� ������ ���������� ������������ ������������ ����������� ����.

�������� ���������, ��� ��������� 3 ������������� �������, ���������� �� �������. ��-������, ��������, ��� S �������� ��������. ��-������, ��������, ��� �������� ����� �� ������������� ������������ �������� ������� �� ��������� ���������� ������, � ������ �������� ���������������� �����������. �-�������, ��� ������� �� ������������ ��������� ����, ���� ������� ������������� �� �����������, �� ������ ������� ����� �������, ������� ����� ����� ��������, �� ������ �� ��������� ���������� ������ ������ �������.

����, �� ��������, ��� ���� ������ �������� ���������� ��������� ������������ ��������� ���������� ������ ������ ����, � ������ � ��� �������� ������ ��������.

�������� ��������, ��� �������� ���� �������� ���� ������ ����������.

������ ��� �������� ��������� ����. �������� ���� �� ������ ���� �������� �������� ������� ������� - ���� ������ ������� ����� � ������������ ������� ������ ����, ���� ������ ���������� ���� � ������� ������������� ����� ��. � � ���, � � ������ ������ ������� ��� ���������� ������� �� ��������� ���� �������������, � ������������ �� ���������� ����� ������� ������ ���� �� ���������� � �� ���� ����. ����� �������, �������� ���� �������� ������ ����������, �������� ����������� ����������� ������������ ��������, ��� � ��������� ���� ��������������.