MAXimal
home
algo
bookz
forum
about
������� ���������-����������
Page source on a
TeX
-like language:
\h1{ ������� ���������-���������� } ������� ���������-���������� --- ��� ������ ������������� ����, ����������� ������������ ������ �����-���� ��������, ��� ��������� ����������� ������� �������. \h2{ ������������ �������� ���������-���������� } \h3{ ��������� ������������ } ������� ���������-���������� �������� ��������� �������: ����� ��������� ������ ����������� ���������� ��������, ���� �������������� ������� ���� �������� \bf{�� �����������}, ����� ������� ������� ���� \bf{��������} ����������� ���� ��������, ��������� ������� ������� ����������� ������������ \bf{�����} ��������, ������� ������� ����������� \bf{�������}, � ��� �����, ������ �� ����������� \bf{����} ��������. \h3{ ������������ � �������� �������� } � �������������� ����� ���������� ���� ��������� ������������ �������� ��������� �������: $$ \left| \bigcup_{i=1}^n A_i \right| = \sum_{i=1}^n \left| A_i \right| ~~ - \sum_{i,j : \atop 1 \le i < j \le n} \left| A_i \cap A_j \right| ~~ + \sum_{i,j,k : \atop 1 \le i < j < k \le n} \left| A_i \cap A_j \cap A_k \right| ~ - ~ \ldots ~ + ~ (-1)^{n-1} \left| A_1 \cap \ldots \cap A_n \right|. $$ Ÿ ����� �������� ����� ���������, ����� ����� �� �������������. ��������� ����� $B$ ���������, ���������� �������� �������� $A_i$. ����� ������� ���������-���������� ��������� ���: $$ \left| \bigcup_{i=1}^n A_i \right| = \sum_{C \subseteq B} (-1)^{size(C)-1} \left| \bigcap_{e \in C} e \right|. $$ ��� ������� ����������� ������ (Abraham de Moivre). \h3{ ������������ � ������� �������� ����� } ����� �� ��������� �������� ��� ������ $A$, $B$ � $C$: \img{inclusion_exclusion_1.png} ����� ������� ����������� $A \cup B \cup C$ ����� ����� �������� $A$, $B$ � $C$ �� ������� ������ �������� �������� $A \cap B$, $A \cap C$, $B \cap C$, �� � ������������ ������ �������� ������� $A \cap B \cap C$: $$ S(A \cup B \cup C) = S(A) ~ + ~ S(B) ~ + ~ S(C) ~ - ~ S(A \cap B) ~ - ~ S(A \cap C) ~ - ~ S(B \cap C) ~ + ~ S(A \cap B \cap C). $$ ����������� ������� ��� ���������� � �� ����������� $n$ �����. \h3{ ������������ � �������� ������ ������������ } ���� $A_i$ $(i = 1 \ldots n)$ --- ��� �������, ${\cal P}(A_i)$ --- �� �����������, �� ����������� �� ����������� (�.�. ����, ��� ��������� ���� �� ���� �� ���� �������) �����: $$$ \begin{eqnarray} {\cal P} \left( \bigcup_{i=1}^n A_i \right) & = & \sum_{i=1}^n {\cal P} \left( A_i \right) ~~ - \sum_{i,j : \atop 1 \le i < j \le n} {\cal P} \left( A_i \cap A_j \right) ~~ + \cr & + & \sum_{i,j,k : \atop 1 \le i < j < k \le n} {\cal P} \left( A_i \cap A_j \cap A_k \right) ~ - ~ \ldots ~ + ~ (-1)^{n-1} {\cal P} \left( A_1 \cap \ldots \cap A_n \right). \cr \nonumber \end{eqnarray} $$$ ��� ����� ����� ����� �������� � ���� ����� �� ������������� ��������� $B$, ���������� �������� �������� ������� $A_i$: $$ {\cal P} \left( \bigcup_{i=1}^n A_i \right) = \sum_{C \subseteq B} (-1)^{size(C)-1} \cdot {\cal P} \left( \bigcap_{e \in C} e \right). $$ \h2{ �������������� �������� ���������-���������� } ��� �������������� ������ ������������ �������������� ������������� � �������� ������ ��������: $$ \left| \bigcup_{i=1}^n A_i \right| = \sum_{C \subseteq B} (-1)^{size(C)-1} \left| \bigcap_{e \in C} e \right|, $$ ��� $B$, ��������, --- ��� ���������, ��������� �� $A_i$-��. ��� ����� ��������, ��� ����� �������, ������������ ���� �� � ����� �� �������� $A_i$, ������ �������� ����� ���� ���. (�������, ��� ��������� ��������, �� ������������ �� � ����� �� $A_i$, ����� �� ����� ���� ������, ��������� ����������� � ������ ����� �������). ���������� ������������ ������� $x$, ������������ ����� � $k \ge 1$ ���������� $A_i$. �������, ��� �� ����������� �������� ����� ���� ���. �������, ���: \ul{ \li � ��� ���������, � ������� $size(C) = 1$, ������� $x$ ������ ����� $k$ ���, �� ������ ����; \li � ��� ���������, � ������� $size(C) = 2$, ������� $x$ ������ (�� ������ �����) ����� $C_k^2$ ��� --- ������ ��� $x$ ����������� ������ � ��� ���������, ������� ������������� ���� ���������� �� $k$ ��������, ���������� $x$; \li � ��� ���������, � ������� $size(C) = 3$, ������� $x$ ������ ����� $C_k^3$ ���, �� ������ ����; \li $\ldots$ \li � ��� ���������, � ������� $size(C) = k$, ������� $x$ ������ ����� $C_k^k$ ���, �� ������ $(-1)^{k-1}$; \li � ��� ���������, � ������� $size(C) > k$, ������� $x$ ������ ���� ���. } ����� �������, ��� ���� ��������� ����� ����� \algohref=binomial_coeff{������������ �������������}: $$ T = C_k^1 - C_k^2 + C_k^3 - \ldots + (-1)^{i-1} \cdot C_k^i + \ldots + (-1)^{k-1} \cdot C_k^k. $$ ����� ����� ��������� ��� �����, ������� � � ����������� � ����� ������� ��������� $(1-x)^k$: $$ (1-x)^k = C_k^0 - C_k^1 \cdot x + C_k^2 \cdot x^2 - C_k^3 \cdot x^3 + \ldots + (-1)^k \cdot C_k^k \cdot x^k. $$ �����, ��� ��� $x=1$ ��������� $(1-x)^k$ ������������ ����� �� ��� ����, ��� $1 - T$. �������������, $T = 1 - (1-1)^k = 1$, ��� � ����������� ��������. \h2{ ���������� ��� ������� ����� } ������� ���������-���������� ������ ������ ������ ��� �������� �������� ��� ����������. ������� �� ���������� ��� ������� ������ "�� �������", �������������� ���������� ��������, ����� ���������� ����� ������������ ������, ������� ������ ������ ��� ������������� �������� ���������-����������. ����� ������� �������� ������ "����� ����� �����", ��������� � ��� ���������������, ��� ������� ���������-���������� ����� ������ ��������� � �������������� ��������, � �� ����������� ����������������. \h3{ ������� ������� � ������������� } ������� ���� ������������ ����� �� $0$ �� $9$ �����, ��� ������ ������� ������ $1$, � ��������� --- ������ $8$? ��������� ����� "������" ������������, �.�. �����, � ������� ������ ������� $\le 1$ �/��� ��������� $\ge 8$. ��������� ����� $X$ ��������� ������������, � ������� ������ ������� $\le 1$, � ����� $Y$ --- � ������� ��������� ������� $\ge 8$. ����� ���������� "������" ������������ �� ������� ���������-���������� �����: $$ |X| + |Y| - |X \cap Y|. $$ ������� ��������� ������������� ����������, ��������, ��� ��� �����: $$ 2 \cdot 9! + 2 \cdot 9! - 2 \cdot 2 \cdot 8! $$ ������� ��� ����� �� ������ ����� ������������ $10!$, �� ������� �����. \h3{ ������� ������� � (0,1,2)-������������������� } ������� ���������� ������������������� ����� $n$, ��������� ������ �� ����� $0,1,2$, ������ ������ ����� ����������� ���� �� ���? ����� ������� � �������� ������, �.�. ����� ������� ����� �������������������, � ������� �� ������������ ���� �� ���� �� �����. ��������� ����� $A_i$ ($i = 0 \ldots 2$) ��������� �������������������, � ������� �� ����������� ����� $i$. ����� �� ������� ���������-���������� ����� "������" ������������������� �����: $$ |A_0| + |A_1| + |A_2| - |A_0 \cap A_1| - |A_0 \cap A_2| - |A_1 \cap A_2| + |A_0 \cap A_1 \cap A_2|. $$ ������� ������� �� $A_i$ �����, ��������, $2^n$ (��������� � ����� ������������������� ����� ����������� ������ ��� ���� ����). �������� ������� ��������� ����������� $A_i \cap A_j$ ����� $1$ (��������� ������� ��������� ������ ���� �����). �������, �������� ����������� ���� ��� �������� ����� $0$ (��������� ��������� ���� ������ �� �������). ���������, ��� �� ������ �������� ������, �������� �������� \bf{�����}: $$ 3^n - 3 \cdot 2^n + 3 \cdot 1 - 0. $$ \h3{ ���������� ������������� ������� ��������� } ���� ���������: $$ x_1 + x_2 + x_3 + x_4 + x_5 + x_6 = 20, $$ ��� ��� $0 \le x_i \le 8$ (��� $i = 1 \ldots 6$). ��������� ��������� ����� ������� ����� ���������. ������� ������� ��� ����������� $x_i \le 8$, � ������ ��������� ����� ��������������� ������� ����� ���������. ��� ����� �������� ����� \algohref=binomial_coeff{������������ ������������} --- �� ����� ������� $20$ ��������� �� $6$ �����, �.�. ������������ $5$ "������", ����������� ������, �� $25$ ������: $$ N_0 = C_{25}^5 $$ ��������� ������ �� ������� ���������-���������� ����� "������" �������, �.�. ����� ������� ���������, � ������� ���� ��� ����� $x_i$ ������ $9$. ��������� ����� $A_k$ (��� $k = 1 \ldots 6$) ��������� ����� ������� ���������, � ������� $x_k \ge 9$, � ��� ��������� $x_i \ge 0$ (��� ���� $i \ne k$). ����� ��������� ������ ��������� $A_k$, �������, ��� � ��� �� ���� �� �� ������������� ������, ��� �������� ����� �������� ����, ������ ������ $9$ ��������� ��������� �� ������������ � ����� ����������� ������ ������. ����� �������: $$ | A_k | = C_{16}^5 $$ ����������, �������� ����������� ���� �������� $A_k$ � $A_p$ ����� �����: $$ \left| A_k \cap A_p \right| = C_7^5 $$ �������� ������� ����������� ��� � ����� �������� ����� ����, ��������� $20$ ��������� �� ������ �� ��� � ����� ����������, ������ ���� ������ $9$. ��������� �� ��� � ������� ���������-���������� � ��������, ��� �� ������ �������� ������, ������������ �������� \bf{�����}: $$ C_{25}^5 - C_6^1 \cdot C_{16}^5 + C_6^2 \cdot C_7^5. $$ \h3{ ���������� ������� ������� ����� � �������� ������� } ����� ���� ����� $n$ � $r$. ��������� ��������� ���������� ����� � ������� $[1; r]$, ������� ������� � $n$. ����� ������� � �������� ������ --- ��������� ���������� �� ������� ������� �����. ���������� ��� ������� �������� ����� $n$; ��������� �� ����� $p_i$ ($i = 1 \ldots k$). ������� ����� � ������� $[1;r]$, ��������� �� $p_i$? �� ���������� �����: $$ \left\lfloor \frac{ r }{ p_i } \right\rfloor $$ ������ ���� �� ������ ������������ ��� �����, �� ������� ������������ ����� --- ��������� ����� ����� �������������� ��������� ��� (��, ������� ������� ����� �� ��������� $p_i$). ������� ���� ��������������� �������� ���������-����������. ��������, ����� �� $2^k$ ��������� ������������ ��������� ���� $p_i$-��, ��������� �� ������������, � ��������� ��� ������� � ������� ���������-���������� ��������� ���������. �������� \bf{����������} ��� �������� ���������� ������� ������� �����: \code int solve (int n, int r) { vector
p; for (int i=2; i*i<=n; ++i) if (n % i == 0) { p.push_back (i); while (n % i == 0) n /= i; } if (n > 1) p.push_back (n); int sum = 0; for (int msk=1; msk<(1<
1$. ������������� �������� ���������-����������, �������� ���������� �������, ��������� �� �������� $d$ (��, ��������, ��������� � �� ������� ��������): $$ ans = \sum_{d \ge 2} (-1)^{deg(d)-1} \cdot f(d), $$ ��� $deg(d)$ --- ��� ���������� ������� � ������������ ����� $d$, $f(d)$ --- ���������� �������, ��������� �� $d$. ����� ��������� ������� $f(d)$, ���� ������ ��������� ���������� �����, ������� $d$, � \algohref=binomial_coeff{������������ �������������} ��������� ����� �������� ������� �� ��� �������. ����� �������, � ������� ������� ���������-���������� �� ��������� ���������� �������, ��������� �� ������� �����, ����� �������� ����� �������, ��������� �� ������������ ���� �������, ���������� �������, ��������� �� ��� �������, � �.�. \h3{ ����� ������������� ����� } ���� ����� $n \le 10^6$. ��������� ��������� ����� ����� ����� ����� $2 \le a < b < c \le n$, ��� ��� �������� �������������� ��������, �.�.: \ul{ \li ���� ${\rm gcd}(a,b) = {\rm gcd}(a,c) = {\rm gcd}(b,c) = 1$, \li ���� ${\rm gcd}(a,b) > 1$, ${\rm gcd}(a,c) > 1$, ${\rm gcd}(b,c) > 1$. } ��-������, ����� ������� � �������� ������ --- �.�. ��������� ����� ��������������� �����. ��-������, �������, ��� � ����� ��������������� ������ ����� ��� � ����� ��������� � ����� ��������, ��� ��� ����� ������� ������ � ����� ������ ������ � �� ������� ������ � ������ ������ ������. ����� �������, ���������� ��������������� ����� ����� ����� �� ���� ������ �� $2$ �� $n$ ������������ ���������� ������� ������� � ������� ������ ����� �� ���������� �� ������� ������� �����. ������ ��, ��� ��� �������� ��� ������� ������ --- ��� ��������� ������� ��� ������� ����� � ������� $[2;n]$ ���������� �����, ������� ������� (��� �� ������� �������) � ���. ���� ��� ������ ��� ��������������� ���� ����, ��������� ���� ������� �� �������� ����� --- ��� ��������� ������������ ������� �� ����� �� $2$ �� $n$, � ����� �������� ������������ ������������ ������� ����� �� ������������. ������� ��� ����������� ����� ������� �������, ������� ������������ ������ ��� ���� ����� �� ������� $[2;n]$ �����. ��� ����� ����� ����������� ����� \bf{����������� ������ ����������}: \ul{ \li ��-������, ��� ���� ����� ��� ����� � ������� $[2;n]$, � ������������ ������� ������� ������� �� ������ ������. ����� ����, ��� ������� ���������-���������� ��� ����������� �����, ������� ������� �������� ������������ ������� ������ �����. ��� ����� ��� ���� ������� ������� $deg[]$, �������� ��� ������� ����� ���������� ������� � ��� ������������, � $good[]$ --- ���������� ��� ������� ����� $true$ ��� $false$ --- ��� ������� ������ � ���� � ������� $\le 1$ ��� ���. ����� ����� �� ����� ������ ���������� ��� ��������� ���������� �������� ����� �� �������� �� ���� ������, ������� �������� �����, � �������� $deg[]$ � ���, � � ���� �����, ������� �������� �� �������� �������� --- �������� $good = false$. \li ��-������, ��� ���� ��������� ����� ��� ���� ����� �� $2$ �� $n$, �.�. ������ $cnt[]$ --- ���������� �����, �� ������� ������� � ������. ��� ����� ��������, ��� �������� ������� ���������-���������� --- ����� ���������� �� ��������� � ��, �� � ����������� �������: �� ������ ���������� ��������� � �������, � ����� ������� ���������-���������� ��� ����� ����� ��� ��������� ������. ����, ����� � ��� ���� ����� $i$, ��� �������� $good[]=true$, �.�. ��� �����, ����������� � ������� ���������-����������. �������� ��� �����, ������� $i$, � � ������ $cnt[]$ ������� �� ����� ����� �� ������ ��������� ��� ������� �������� $\lfloor N/i \rfloor$. ���� --- ����������� ��� ��������� --- ������� �� $deg[i]$: ���� $deg[i]$ �������, �� ���� ����������, ����� ��������. } \bf{����������}: \code int n; bool good[MAXN]; int deg[MAXN], cnt[MAXN]; long long solve() { memset (good, 1, sizeof good); memset (deg, 0, sizeof deg); memset (cnt, 0, sizeof cnt); long long ans_bad = 0; for (int i=2; i<=n; ++i) { if (good[i]) { if (deg[i] == 0) deg[i] = 1; for (int j=1; i*j<=n; ++j) { if (j > 1 && deg[i] == 1) if (j % i == 0) good[i*j] = false; else ++deg[i*j]; cnt[i*j] += (n / i) * (deg[i]%2==1 ? +1 : -1); } } ans_bad += (cnt[i] - 1) * 1ll * (n-1 - cnt[i]); } return (n-1) * 1ll * (n-2) * (n-3) / 6 - ans_bad / 2; } \endcode ����������� ������ ������� ���������� $O (n \log n)$, ��������� ����� ��� ������� ����� $i$ ��� ��������� �������� $n/i$ �������� ���������� �����. \h3{ ����� ������������ ��� ����������� ����� } �������, ��� ����� ������������ ����� $n$ ��� ����������� ����� ����� ���������� �����: $$ n! - C_n^1 \cdot (n-1)! + C_n^2 \cdot (n-2)! - C_n^3 \cdot (n-3)! + \ldots \pm C_n^n \cdot (n-n)! $$ � �������������� ����� �����: $$ \frac{ n! }{ e } $$ (����� ����, ���� ��������� ��� ��������� � ���������� ������ --- �� ��������� � �������� ����� ������������ ��� ����������� �����) ��������� ����� $A_k$ ��������� ������������ ����� $n$ � ����������� ������ � ������� $k$ ($1 \le k \le n$). ������������� ������ �������� ���������-����������, ����� ��������� ����� ������������ ���� �� � ����� ����������� ������. ��� ����� ��� ���� ��������� ������� ������� ��������-����������� $A_i$, ��� �������� ��������� �������: $$ \left| A_p \right| = (n-1)! ~, $$ $$ \left| A_p \cap A_q \right| = (n-2)! ~, $$ $$ \left| A_p \cap A_q \cap A_r \right| = (n-3)! ~, $$ $$ \ldots ~, $$ ��������� ���� �� �����, ��� ����� ����������� ����� ����� $x$, �� ��� ����� �� ����� ������� $x$ ��������� ������������, � ��� ��������� $(n-x)$ ��������� ����� ������ ��� ������. ���������� ��� � ������� ���������-���������� � ��������, ��� ����� �������� ������� ������������ ������� $x$ �� $n$-����������� ��������� ����� $C_n^x$, �������� ������� ��� ����� ������������ ���� �� � ����� ����������� ������: $$ C_n^1 \cdot (n-1)! - C_n^2 \cdot (n-2)! + C_n^3 \cdot (n-3)! - \ldots \pm C_n^n \cdot (n-n)! $$ ����� ����� ������������ ��� ����������� ����� �����: $$ n! - C_n^1 \cdot (n-1)! + C_n^2 \cdot (n-2)! - C_n^3 \cdot (n-3)! + \ldots \pm C_n^n \cdot (n-n)! $$ ������� ��� ���������, �������� \bf{������ � ��������������� ��������� ��� ���������� ������������ ��� ����������� �����}: $$ n! \left( 1 - \frac{1}{1!} + \frac{1}{2!} - \frac{1}{3!} + \ldots \pm \frac{1}{n!} \right) \approx \frac{n!}{e}. $$ (��������� ����� � ������� --- ��� ������ $n+1$ ������ ���������� � ��� ������� $e^{-1}$) � ���������� ����� ��������, ��� ����������� ������� �������� ������, ����� ���������, ����� ����������� ����� �� ���� ����� $m$ ������ ��������� ������������ (� �� ����� ����, ��� �� ������ ��� ������). ������� ��������� �����, ��� ���������� ���� ������ �������, ������ � ��� ����� ����� ���� �� $k$, � �� �� $n$. \h2{ ������ � online judges } ������ �����, ������� ����� ������, ��������� ������� ���������-����������: \ul{ \li \href=http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=1266{UVA #10325 \bf{"The Lottery"} ~~~~ [���������: ������]} \li \href=http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2906{UVA #11806 \bf{"Cheerleaders"} ~~~~ [���������: ������]} \li \href=http://www.topcoder.com/stat?c=problem_statement&pm=10875{TopCoder SRM 477 \bf{"CarelessSecretary"} ~~~~ [���������: ������]} \li \href=http://community.topcoder.com/stat?c=problem_statement&pm=6658&rd=10068{TopCoder TCHS 16 \bf{"Divisibility"} ~~~~ [���������: ������]} \li \href=http://www.spoj.pl/problems/NGM2/{SPOJ #6285 NGM2 \bf{"Another Game With Numbers"} ~~~~ [���������: ������]} \li \href=http://community.topcoder.com/stat?c=problem_statement&pm=8470{TopCoder SRM 382 \bf{"CharmingTicketsEasy"} ~~~~ [���������: �������]} \li \href=http://www.topcoder.com/stat?c=problem_statement&pm=8307{TopCoder SRM 390 \bf{"SetOfPatterns"} ~~~~ [���������: �������]} \li \href=http://community.topcoder.com/stat?c=problem_statement&pm=2013{TopCoder SRM 176 \bf{"Deranged"} ~~~~ [���������: �������]} \li \href=http://community.topcoder.com/stat?c=problem_statement&pm=10702&rd=14144&rm=303184&cr=22697599{TopCoder SRM 457 \bf{"TheHexagonsDivOne"} ~~~~ [���������: �������]} \li \href=http://www.spoj.pl/problems/MSKYCODE/{SPOJ #4191 MSKYCODE \bf{"Sky Code"} ~~~~ [���������: �������]} \li \href=http://www.spoj.pl/problems/SQFREE/{SPOJ #4168 SQFREE \bf{"Square-free integers"} ~~~~ [���������: �������]} \li \href=http://www.codechef.com/JAN11/problems/COUNTREL/{CodeChef \bf{"Count Relations"} ~~~~ [���������: �������]} } \h2{ ���������� } \ul{ \li \href=http://faculty.wheelock.edu/dborkovitz/articles/ngm6.htm{Debra K. Borkovitz. \bf{"Derangements and the Inclusion-Exclusion Principle"}} }