diff --git a/_sources/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.ipynb b/_sources/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.ipynb index 960af842..19fffd5c 100644 --- a/_sources/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.ipynb +++ b/_sources/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.ipynb @@ -27,6 +27,21 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "$$\\binom{0}{k} = 0$$\n", + "$$\\binom{n}{0} = 1, \\text{si } n \\neq 0$$\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -36,6 +51,28 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 1, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def binom_rec(n, k): # voir cours\n", + " if k == 0:\n", + " return 1\n", + " if n == 0:\n", + " return 0\n", + " return binom_rec(n - 1, k - 1) + binom_rec(n - 1, k)\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 2, @@ -82,6 +119,31 @@ " return ..." ] }, + { + "cell_type": "markdown", + "execution_count": 4, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def binom_dp(n, k):\n", + " M = [[0]*(k + 1) for _ in range(n + 1)]\n", + " for i in range(0, n + 1):\n", + " M[i][0] = 1 # cas de base\n", + "\n", + " for i in range(1, n + 1):\n", + " for j in range(1, k + 1):\n", + " M[i][j] = M[i - 1][j - 1] + M[i - 1][j]\n", + " return M[n][k]\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -125,6 +187,31 @@ " return aux(n, k)" ] }, + { + "cell_type": "markdown", + "execution_count": null, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def binom(n, k):\n", + " d = {}\n", + " def aux(i, j):\n", + " if j == 0: return 1\n", + " if i == 0: return 0\n", + " if (i, j) not in d:\n", + " d[(i, j)] = aux(i - 1, j - 1) + aux(i - 1, j)\n", + " return d[(i, j)]\n", + " return aux(n, k)\n", + "```\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -154,6 +241,27 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "Si $a_k$ est utilisée : il faut encore rendre $n - a_k$ euros avec les pièces $a_1$, ..., $a_k$ (on a le droit d'utiliser plusieurs fois $a_k$), d'où $r(n, k) = r(n - a_k, k) + 1$.\n", + "\n", + "Dans le cas général, on considère les deux possibilités et on conserve le minimum : \n", + "$$\n", + " r(n, k) = min(r(n, k - 1), r(n - a_k, k) + 1)\n", + "$$\n", + "\n", + "Remarque : on ne peut utiliser $a_k$ pour rendre $n$ euros que si $n \\geq a_k$. Si $n < a_k$, on a donc $r(n, k) = r(n, k - 1)$.\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -164,6 +272,33 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 1, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def rendu(L, n):\n", + " k = len(L) # nombre de pièces\n", + " M = [[0]*(k + 1) for _ in range(n + 1)]\n", + " for i in range(1, n + 1):\n", + " M[i][0] = float(\"inf\")\n", + " for j in range(1, k + 1):\n", + " if i - L[j - 1] >= 0:\n", + " M[i][j] = min(M[i][j - 1], 1 + M[i - L[j - 1]][j])\n", + " else:\n", + " M[i][j] = M[i][j - 1]\n", + " return M[-1][-1]\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 8, @@ -193,6 +328,43 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 9, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def rendu_memo(L, n):\n", + " k = len(L)\n", + " d = {}\n", + " def aux(i, j):\n", + " if (i, j) in d:\n", + " return d[(i, j)]\n", + " if i == 0:\n", + " return 0\n", + " if j == 0:\n", + " return float(\"inf\")\n", + " if i - L[j - 1] >= 0:\n", + " d[(i, j)] = min(aux(i, j - 1), 1 + aux(i - L[j - 1], j))\n", + " else:\n", + " d[(i, j)] = aux(i, j - 1)\n", + " return d[(i, j)]\n", + " return aux(n, k)\n", + "rendu_memo([1, 2, 5], 7)\n", + "```\n", + "``` \n", + "2\n", + "\n", + "```\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -223,6 +395,23 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 5, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "M = [[1, 0, 0, 0], [0, 0, 1, 1], [0, 1, 1, 1], [0, 1, 0, 1]]\n", + "```\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -239,6 +428,28 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 6, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def est_carre(M, x, y, k):\n", + " for i in range(x, x + k):\n", + " for j in range(y, y + k):\n", + " if M[i][j] != 1:\n", + " return False\n", + " return True\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 11, @@ -257,6 +468,29 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 9, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def contient_carre(M, k):\n", + " n = len(M)\n", + " for i in range(n - k + 1):\n", + " for j in range(n - k + 1):\n", + " if est_carre(M, i, j, k):\n", + " return True\n", + " return False\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 12, @@ -275,6 +509,28 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 13, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def max_carre1(M):\n", + " n = len(M)\n", + " for k in range(n, 0, -1):\n", + " if contient_carre(M, k):\n", + " return k\n", + " return 0\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 14, @@ -304,6 +560,22 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "- `est_carre(M, x, y, k)` est en $O(k^2)$. \n", + "- `contient_carre(M, k)` appelle O($n$) fois `est_carre`, donc est en $O(n^2 k^2)$. \n", + "- `max_carre1(M)` appelle `contient_carre` pour $k = 1, 2, ..., n$, donc est de complexité $\\sum_{k=1}^n O(n^2 k^2) = O(n^3 \\sum_{k=1}^n k^2)$. Comme $\\sum_{k=1}^n k^2 = \\frac{n(n+1)(2n+1)}{6} = O(n^3)$, la complexité totale est $\\boxed{O(n^6)}$.`\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -321,6 +593,22 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "`c[0][y] = 0` si `m[0][y] = 0` et `c[0][y] = 1` sinon. \n", + "De même pour `c[x][0]`. \n", + "Remarque : `c[0][y]` et `c[x][0]` sont donc les mêmes valeurs que `m[0][y]` et `m[x][0]`, on peut donc initialiser `c` comme une copie de `m`.\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -330,6 +618,20 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "`c[x][y] = 0`.\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -348,6 +650,29 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 15, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def max_carre2(m):\n", + " c = m.copy()\n", + " for i in range(len(m)):\n", + " for j in range(len(m[0])):\n", + " if m[i][j] == 1:\n", + " c[i][j] = 1 + min(c[i - 1][j], c[i][j - 1], c[i - 1][j - 1])\n", + " return max(max(l) for l in c)\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 16, @@ -377,6 +702,21 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "`max_carre2(m)` est en $\\boxed{O(n^2)}$ à cause des deux boucles `for` imbriquées. \n", + "C'est donc beaucoup mieux que `max_carre1(m)` qui est en $O(n^6)$.\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/_sources/dl/algo/prog_dyn/tp/tp2/tp_sac_dos.ipynb b/_sources/dl/algo/prog_dyn/tp/tp2/tp_sac_dos.ipynb index ff355c67..339282c8 100644 --- a/_sources/dl/algo/prog_dyn/tp/tp2/tp_sac_dos.ipynb +++ b/_sources/dl/algo/prog_dyn/tp/tp2/tp_sac_dos.ipynb @@ -37,6 +37,35 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": null, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def glouton(c, w, v):\n", + " \"\"\"Renvoie la valeur maximum qu'on peut obtenir avec les objets\n", + " c: capacité du sac\n", + " w: poids des objets\n", + " v: valeur des objets\n", + " \"\"\"\n", + " poids = 0\n", + " valeur = 0\n", + " for i in range(len(w)):\n", + " if poids + w[i] <= c:\n", + " poids += w[i]\n", + " valeur += v[i]\n", + " return valeur\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 2, @@ -73,6 +102,27 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 3, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def combine(L1, L2):\n", + " L = []\n", + " for i in range(len(L1)):\n", + " L.append((L1[i], L2[i]))\n", + " return L\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 4, @@ -102,6 +152,29 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 5, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def split(L):\n", + " L1 = []\n", + " L2 = []\n", + " for i in range(len(L)):\n", + " L1.append(L[i][0])\n", + " L2.append(L[i][1])\n", + " return L1, L2\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -161,6 +234,26 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 8, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def tri_poids(w, v):\n", + " L = combine(w, v)\n", + " L.sort()\n", + " return split(L)\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 9, @@ -199,6 +292,25 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 10, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def glouton_poids(c, w, v):\n", + " w, v = tri_poids(w, v)\n", + " return glouton(c, w, v)\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 11, @@ -228,6 +340,31 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 12, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def tri_valeur(w, v):\n", + " L = combine(v, w)\n", + " L.sort(reverse=True)\n", + " L1, L2 = split(L)\n", + " return L2, L1\n", + "\n", + "def glouton_valeur(c, w, v):\n", + " w, v = tri_valeur(w, v)\n", + " return glouton(c, w, v)\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 13, @@ -257,6 +394,32 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 14, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def tri_ratio(v, w):\n", + " L = combine(v, w)\n", + " L = combine([v[i]/w[i] for i in range(len(v))], L)\n", + "\n", + " L.sort(reverse=True)\n", + " return split(split(L)[1])\n", + "\n", + "def glouton_ratio(c, w, v):\n", + " v, w = tri_ratio(v, w)\n", + " return glouton(c, w, v)\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 15, @@ -299,6 +462,20 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "$dp[i][0] = 0$ : on ne peut pas mettre d'objet dans un sac de capacité $0$.\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -308,6 +485,20 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "$dp[i][j] = dp[i][j-1]$ : on ne peut pas mettre l'objet $j$ dans le sac de capacité $i$.\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -317,6 +508,20 @@ "````" ] }, + { + "cell_type": "markdown", + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "$$dp[i][j] = \\max(\\underbrace{dp[i][j - 1]}_{\\text{sans prendre } o_j}, \\underbrace{dp[i - w_j][j - 1] + v_j}_{\\substack{\\text{en prenant } o_j}, \\text{si }i - w_j \\geq 0})$$\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -326,6 +531,32 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 16, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def prog_dyn(c, w, v):\n", + " n = len(w)\n", + " dp = [[0 for j in range(c+1)] for i in range(n+1)]\n", + " for i in range(1, n+1):\n", + " for j in range(1, c+1):\n", + " if j < w[i-1]:\n", + " dp[i][j] = dp[i-1][j]\n", + " else:\n", + " dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i-1]] + v[i-1])\n", + " return dp[n][c]\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 17, @@ -363,6 +594,29 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 18, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "import random\n", + "\n", + "def genere_instance():\n", + " c = random.randint(1, 1000)\n", + " w = [random.randint(1, 100) for i in range(100)]\n", + " v = [random.randint(1, 100) for i in range(100)]\n", + " return c, w, v\n", + "```\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -373,6 +627,32 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 19, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "gp, gv, gr = 0, 0, 0\n", + "for i in range(100):\n", + " c, w, v = genere_instance()\n", + " sol = prog_dyn(c, w, v)\n", + " gp += glouton_poids(c, w, v)/sol\n", + " gv += glouton_valeur(c, w, v)/sol\n", + " gr += glouton_ratio(c, w, v)/sol\n", + "print(f\"Glouton poids : {gp/100}\")\n", + "print(f\"Glouton valeur : {gv/100}\")\n", + "print(f\"Glouton ratio : {gr/100}\")\n", + "```\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -382,6 +662,35 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 20, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "import time\n", + "\n", + "t1, t2 = 0, 0\n", + "for i in range(100):\n", + " c, w, v = genere_instance()\n", + " t = time.time()\n", + " glouton_poids(c, w, v)\n", + " t1 += time.time() - t\n", + " t = time.time()\n", + " prog_dyn(c, w, v)\n", + " t2 += time.time() - t\n", + "print(f\"Glouton poids : {t1} s\")\n", + "print(f\"Programmation dynamique : {t2} s\")\n", + "```\n", + "````" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -401,6 +710,43 @@ "````" ] }, + { + "cell_type": "markdown", + "execution_count": 21, + "metadata": { + "tags": [ + "cor" + ] + }, + "source": [ + "````{admonition} Solution\n", + ":class: tip, dropdown\n", + "``` python\n", + "def prog_dyn(c, w, v):\n", + " n = len(w)\n", + " dp = [[0 for j in range(c+1)] for i in range(n+1)]\n", + " for i in range(1, n+1):\n", + " for j in range(1, c+1):\n", + " if j < w[i-1]:\n", + " dp[i][j] = dp[i-1][j]\n", + " else:\n", + " dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i-1]] + v[i-1])\n", + "\n", + " # reconstruction de la solution\n", + " i, j = n, c\n", + " sol = []\n", + " while i > 0 and j > 0:\n", + " if dp[i][j] == dp[i-1][j]:\n", + " i -= 1\n", + " else:\n", + " sol.append(i-1)\n", + " j -= w[i-1]\n", + " i -= 1\n", + " return sol\n", + "```\n", + "````" + ] + }, { "cell_type": "code", "execution_count": 22, diff --git a/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.html b/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.html index 7b64f7fe..ee1edf8e 100644 --- a/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.html +++ b/dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.html @@ -624,10 +624,28 @@

Coefficient binomialQuestion

Que peut-on prendre comme cas de base ?

+

Question

Écrire une fonction récursive binom_rec(n, k) renvoyant \(\binom{n}{k}\) à partir de la formule ci-dessus. Expliquer pourquoi la complexité de cette fonction est très mauvaise.

+
+
+

Question

En déduire une fonction rendu(L, n) par programmation dynamique renvoyant le nombre minimum de pièces requises pour rendre n euros, où L est la liste des pièces.
On remplira une matrice M pour que M[i][j] contienne le nombre minimum de pièces pour rendre i euros en utilisant les j premières pièces de L.

+
+
+
+
+

On va construire une matrice c telle que c[x][y] est la taille maximum d’un carré de 1 dans m dont la case en bas à droite est m[x][y] (c’est à dire un carré de 1 qui contient m[x][y] mais aucun m[i][j] si \(i > x\) ou \(j > y\)).
Par exemple, c[1][2] = 1 et c[2][3] = 2 pour la matrice \(M\) ci-dessus.

Question

Que vaut c[0][y] et c[x][0] ?

+

Question

Que vaut c[x][y] si m[x][y] = 0 ?

+
+
+
+
+
+
+
+
+
+

Question

Exprimer \(dp[i][j]\) en fonction de \(dp[i][j-1]\) dans le cas où \(w_j > i\).

+

Question

Supposons \(w_j \leq i\). Donner une formule de récurrence sur \(dp[i][j]\), en distinguant le cas où l’objet \(j\) est choisi et le cas où il ne l’est pas.

+

Question

En déduire une fonction prog_dyn(c, w, v) qui renvoie la valeur maximum que l’on peut mettre dans un sac de capacité \(c\), en ne considérant que les \(j\) premiers objets, en remplissant une matrice dp de taille \((c+1) \times (n+1)\).

+
+

Question

Afficher, pour chaque stratégie gloutonne (ordre de poids, ordre de valeur, ordre de ratio), l’erreur commise par rapport à la solution optimale, en moyennant sur 100 instances générées par genere_instance().
Quelle stratégie gloutonne est la plus efficace ?

+

Question

Comparer le temps total d’exécution de la stratégie gloutonne par ratio et de la programmation dynamique, sur 100 instances générées par genere_instance(). On pourra importer time et utiliser time.time() pour obtenir le temps actuel en secondes.

+

Obtenir la liste des objets choisis#

@@ -839,6 +998,32 @@

Obtenir la liste des objets choisisdp à partir de la case \((c, n)\).

+
prog_dyn(10, [5, 4, 7], [4, 4, 6]) 
diff --git a/searchindex.js b/searchindex.js
index 9835a2c2..985044f9 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["0_python/aide_memoire","0_python/entrainement","dl/algo/prog_dyn/cours/prog_dyn","dl/algo/prog_dyn/seam_carving/seam_carving","dl/algo/prog_dyn/tp/tp1/tp_prog_dyn","dl/algo/prog_dyn/tp/tp2/tp_sac_dos","dl/ds/itc/ds_x23_differentiel/x23","dl/menu/0","dl/menu/1","dl/menu/2","dl/menu/3","dl/python/dict/tp/tp_dict","dl/python/revision/revisions","dl/slides/dict","dl/slides/lis","dl/slides/sp","dl/td/dict_polynome","dl/td/matrice_prog_dyn","intro","menu/0","menu/1","ressource","slides/dict"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["0_python/aide_memoire.ipynb","0_python/entrainement.md","dl/algo/prog_dyn/cours/prog_dyn.ipynb","dl/algo/prog_dyn/seam_carving/seam_carving.ipynb","dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.ipynb","dl/algo/prog_dyn/tp/tp2/tp_sac_dos.ipynb","dl/ds/itc/ds_x23_differentiel/x23.ipynb","dl/menu/0.md","dl/menu/1.md","dl/menu/2.md","dl/menu/3.md","dl/python/dict/tp/tp_dict.ipynb","dl/python/revision/revisions.ipynb","dl/slides/dict.md","dl/slides/lis.md","dl/slides/sp.md","dl/td/dict_polynome.md","dl/td/matrice_prog_dyn.md","intro.md","menu/0.md","menu/1.md","ressource.md","slides/dict.md"],objects:{},objnames:{},objtypes:{},terms:{"0":[2,3,4,5,6,11,12,18],"1":[2,3,5,11,12,18],"10":[2,3,5,12,18],"100":5,"1000":5,"11":[2,12],"12":[2,12],"13":[2,18],"14":[2,12],"15":12,"18":[2,12],"19":[2,6],"1\u00e8re":18,"1er":[5,12],"2":[2,3,4,11,12],"20":4,"200":3,"2023":18,"2024":18,"22":12,"230":3,"231":3,"2787204":12,"28627452":3,"2h":18,"3":[2,4,5,11,12],"3h":18,"3n_1":6,"3u_n":12,"4":[2,4,5,11,12],"42":[5,12],"484":3,"4845":4,"5":[2,4,5,12],"514":3,"54":12,"6":[2,5,12],"696":3,"697":3,"698":3,"699":3,"7":[2,4,5,11,12,18],"700":3,"701":3,"702":3,"705":3,"714":3,"8":[2,5,12,18],"895558157":12,"9":[11,12],"\u00e0":[2,3,4,6,11,12,18],"\u00e2":6,"\u00e8":6,"\u00e9chap":12,"\u00e9crire":[3,4,5,11,12],"\u00e9crit":18,"\u00e9crite":11,"\u00e9critur":11,"\u00e9dition":12,"\u00e9gal":6,"\u00e9gale":6,"\u00e9l\u00e9ment":[5,6,12],"\u00e9preuv":18,"\u00e9t\u00e9":[3,12],"\u00e9tant":[3,4],"\u00e9tape":[5,12],"\u00e9tiquet\u00e9":11,"\u00e9tiquett":11,"\u00e9ventuel":12,"\u00e9vite":3,"\u00eatre":[6,11],"al\u00e9atoir":5,"ann\u00e9":21,"ao\u00fbt":11,"appel\u00e9":11,"apr\u00e8":6,"ar\u00eat":[11,12],"arg_apr\u00e8":6,"arg_d\u00e9but":6,"arg_d\u00e9but_apr\u00e8":6,"arg_d\u00e9but_av":6,"associ\u00e9":4,"aucun_caract\u00e8re_commun":6,"autoris\u00e9":2,"bool\u00e9en":12,"capacit\u00e9":[2,5],"caract\u00e8r":[6,11],"case":[4,5,6],"ch\u00e2teau":6,"cha\u00een":[6,11],"cl\u00e9":[6,11,18],"class":[3,12],"commen\u00e7on":3,"compl\u00e9ter":[3,11,12],"compl\u00e9tion":11,"complexit\u00e9":[4,6,11],"concat\u00e9n":6,"conna\u00eetr":[4,18],"consid\u00e8r":[3,11],"consid\u00e9r":5,"consid\u00e9ron":12,"coordonn\u00e9":4,"corrig\u00e9":18,"cr\u00e9er":[3,11,12],"d\u00e9but":[6,12],"d\u00e9but_apr\u00e8":6,"d\u00e9but_av":6,"d\u00e9cembr":11,"d\u00e9clench":12,"d\u00e9croissant":5,"d\u00e9duir":[4,5,12],"d\u00e9duit":12,"d\u00e9fini":[3,12],"d\u00e9finir":[3,4,11,12],"d\u00e9finit":3,"d\u00e9form\u00e9":3,"d\u00e9j\u00e0":11,"d\u00e9passent":4,"d\u00e9passer":3,"d\u00e9termin":[4,12],"degr\u00e9":12,"demand\u00e9":4,"derni\u00e8r":[3,18],"diff\u00e9renc":6,"diff\u00e9rent":[5,11],"diff\u00e9rentiel":6,"do":2,"donn\u00e9":[3,4,5,12],"dur\u00e9":18,"encadr\u00e9":12,"enl\u00e8v":3,"enl\u00e8veron":3,"entr\u00e9":[5,6,12],"entra\u00een":[18,21],"etiquet\u00e9":11,"ex\u00e9cut":[5,12],"exc\u00e8d":5,"f\u00e9vrier":11,"fa\u00e7on":[3,4,12],"fin_apr\u00e8":6,"final":3,"float":[2,3,4,12],"forc\u00e9ment":12,"fran\u00e7ai":11,"fus\u00e9":12,"g\u00e9n\u00e8re":5,"g\u00e9n\u00e9r\u00e9e":5,"g\u00e9n\u00e9ral":4,"i\u00e8m":[2,3],"import":[2,3,4,5,12],"ins\u00e9r\u00e9":6,"int":4,"int\u00e9ress":5,"int\u00e9ressant":6,"intensit\u00e9":3,"it\u00e9rat":6,"long":11,"m\u00e9mo\u00efsat":[4,18],"m\u00e9thode":[3,12],"m\u00eame":[3,4,5,6,11],"mod\u00e9lis":18,"n\u00e9cessair":12,"num\u00e9ro":3,"o\u00f9":[2,3,4,5,6,11,12],"op\u00e9rat":6,"p\u00e8re":11,"pi\u00e8c":4,"pic\u00e8":4,"plut\u00f4t":4,"pointill\u00e9":4,"poss\u00e8d":[4,11],"possibilit\u00e9":[6,12],"pr\u00e9alabl":4,"pr\u00e9c\u00e9dent":[3,4,11,12],"premi\u00e8r":[3,4,21],"probl\u00e8m":[4,12],"propri\u00e9t\u00e9":[6,11],"r\u00e9\u00e9crire":[4,5],"r\u00e9alis":3,"r\u00e9currenc":[4,5],"r\u00e9cursiv":[4,11,12,18],"r\u00e9gion":3,"r\u00e9soudr":4,"r\u00e9sultat":5,"r\u00e9sum\u00e9":21,"r\u00e9utilis":[5,12],"recherch\u00e9":11,"redimensionn\u00e9":3,"rentr\u00e9":18,"renvoy\u00e9":3,"repr\u00e9sent":[3,11],"repr\u00e9sent\u00e9":[3,11],"return":[2,3,4,6,11,12],"rh\u00f4ne":3,"sup\u00e9lec":18,"suppl\u00e9mentair":11,"supprim\u00e9":6,"sym\u00e9triqu":12,"t\u00e9l\u00e9chargeant":3,"t\u00e9l\u00e9charger":4,"t\u00e9l\u00e9phone":11,"texte_versionn\u00e9":6,"textes_\u00e9gaux":6,"totalit\u00e9":6,"tr\u00e8":4,"transpos\u00e9":12,"tri\u00e9":5,"tri\u00e9e":[5,12],"trouv\u00e9":[6,12],"true":[4,5,6,11,12],"utilis\u00e9":[4,11],"v\u00e9rifi":12,"v\u00e9rifier":[3,11,12],"visit\u00e9":[6,12],"while":[6,12],A:[6,12],In:2,On:[3,4,5,6,11,12],_:[6,12],a_1:4,a_2:4,a_3:4,a_k:4,ab:3,abord:5,absolu:3,actuel:5,acycliqu:11,admiss:6,affich:[3,5,11,12],affichag:3,ainsi:[3,4,18],air:5,ajout:[3,4,5,6,11,12,18],algorithm:6,algorithmiqu:1,all:12,alor:[3,4,5,6],alp:3,anglai:11,annot:6,annul:6,apparaiss:11,apparten:11,apparti:[11,12],appel:[11,12],append:[3,6,12],appendleft:12,appliqu:6,approx:18,april:11,arc:6,aret:11,arg_av:6,argument:[4,12],arrai:[3,6],art:11,assert:[4,6,12],associ:11,atteindr:3,attent:3,au:[3,4,5,6,11,12],aucun:4,august:11,aussi:11,automatiqu:11,autr:[3,18],auvergn:3,aux:[2,4,11,12,18],auxiliair:11,avant:6,avec:[3,4,5,6,11,12,18],avez:[3,4],avoir:11,avril:11,ax:11,ayant:11,b:[5,6,11,12],ba:[3,4,6,12],base:[4,6],basthon:[3,12],bcpst:21,becirspah:21,begin:[2,6],besoin:12,bf:12,bien:[3,6],binom:4,binom_dp:4,binom_memo:4,binom_rec:4,blanc:3,bord:3,boucl:[11,12,18],box:12,c:[2,3,4,5,6,11,12],ca:[4,5,6,11],cach:2,calcul:[4,6,12],call:2,cap:11,capytal:3,car:[4,6,11],cart:11,cat:11,ccinp:18,cd:11,ce:[3,4,5,6,11,12],cela:[3,4,5,11,12],cell:[2,4,6],cellul:12,central:18,cepend:6,cet:5,cett:[3,4,11,12],ceux:11,chacun:6,chaqu:[3,5,6,11,12],chargeant:3,charger:3,chemin:[11,18],cherch:12,chercher:3,chien:6,choisir:5,choisiss:5,choisit:5,choix:[3,12],ci:[3,4,5,6,11,12],clairement:6,classiqu:[3,12],cliquant:12,cliquer:3,cmap:3,code:[3,11,12],coeffici:18,collect:12,colonn:[3,4],combin:5,comm:[3,4,6,12],command:12,commenc:[3,6,12],commis:5,compar:[4,5,12],compt:[3,11],comptant:11,concour:18,confirm:18,conflit:6,connect:3,connex:[11,12],conserv:11,consist:[3,5,12],construir:[4,5],construit:3,conten:[3,11,12],contenir:11,contenu:4,contiendra:4,contienn:[4,11],contient:[3,4,5,6,11],contient_carr:4,convers:3,copi:[2,6,11],copier:11,cor:11,cord:11,corn:11,correct:11,correspond:[3,4,6,11],correspondr:6,couleur:3,count:11,coupl:5,cour:[5,11,12,21],courant:[6,11],croissant:[4,5,6,12],ctrl:12,cycl:11,d1:11,d2:11,d:[1,2,4,5,6,11],d_:3,dan:[2,3,5,6,11,12,18],de:[1,2,11,21],decemb:11,deepcopi:2,def:[2,3,4,6,11,12],defin:2,deg:12,depui:[3,12],dequ:12,dernier:12,descendr:11,dessin:11,dessou:[5,6,11,12],dessu:[3,4,11,12],deux:[4,5,6,11,12],df:12,dict:11,dictionnair:[4,18],diff1:6,diff2:6,diff:6,dijkstra:6,dimanch:11,dimens:[3,4],diminu:6,dire:[3,4,11,12],direct:11,dist:[2,6,12],dist_fin:6,distanc:[6,12],distingu:[4,5],dit:11,divis:12,doit:11,donc:[3,4,5,6,12],donner:5,dont:4,dorer:11,dp:[2,5],dp_:2,dp_chemin:3,droit:[4,6,12],ds:18,du:[3,4,6,11,12],dynamiqu:[6,18],e:[6,11,12],effectu:3,efficac:5,elif:[6,12],ell:5,els:[2,6,11,12],en:[3,4,5,11],encor:12,end:[2,6],enlever_chemin:3,ensembl:[6,11],ent:3,entier:[4,5],entr:[3,5,6,11,12],enver:3,erreur:[5,12],est:[2,3,4,5,6,11,12],est_carr:4,et:[2,3,4,5,6,11,12,18],euro:4,exempl:[3,4,5,11,12],exercic:[1,18,21],exist:11,expliqu:4,exprim:5,extrair:12,extraire_min:6,extrait:6,f:[4,6,11],facil:[1,3],fair:[4,6],fals:[4,6,11,12],faut:[3,6,12],februari:11,feuill:11,fichier:[3,4],figur:6,fil:11,file:[6,12],fin:[6,11],fin_av:6,flottant:3,floydwarshal:2,foi:[3,4,5,6,12],fonction:[3,4,5,6,11,12,18],form:[11,12],formul:[3,4,5],fort:[3,6],fr_to_en:11,fridai:11,from:[2,12],functool:2,fusionn:6,g:[2,3,6,12],g_:3,g_list:12,gauch:[3,4,6,12],genere_inst:5,glouton_poid:5,glouton_ratio:5,glouton_valeur:5,grai:3,grand:[3,6],graph:[6,11],gri:3,gro:4,h:6,haut:[3,4,6,11,12],hauteur:3,heuristiqu:6,historiqu:6,hor:12,http:4,i:[2,3,4,5,11,12],ici:[3,12],identifi:3,identiqu:6,il:[3,5,6,11,12],importera:5,imposs:4,imread:3,imshow:3,inclu:5,indic:[3,4,6,11,12],inf:[2,4,12],infti:[2,4],inscrir:4,inscriv:4,instanc:5,instruct:3,intuitiv:3,invers:[3,6],j:[2,3,4,5,6,12],j_mini:3,januari:11,janvier:11,jeu:12,jeudi:11,jour:11,juillet:11,juin:11,juli:11,june:11,jusqu:3,just:11,k:[2,3,4,6,11],knapsack2:2,knapsack:2,knapsack_memo2:2,knapsack_memo:2,l1:[5,12],l2:[5,12],l3:12,l:[2,4,5,6,11,12],la:[2,3,4,6,11,12],lamartin:11,lambda:4,largeur:3,last:2,ldot:4,le:[2,3,4,5,6,11,12,18],left:6,len:[2,3,6,11,12],leq:5,lequel:5,lesquel:12,lettr:[6,11],leur:[6,11],levenshtein:6,lexicographiqu:5,lieu:12,lign:[3,4],line:2,linewidth:3,list:[3,4,6,11],ll:6,log:6,logarithmiqu:6,longueur:[5,6,11],lor:12,lundi:11,m1:11,m2:[3,11],m:[2,3,4,6,11,12,21],m_:3,ma:3,mai:[4,11],mainten:[3,12],majoritaire2:11,make_matrix2:12,make_matrix3:12,make_matrix:12,map:4,mar:11,march:11,mardi:11,marquer:12,mat_to_list:12,math:18,mathbf:12,matplotlib:3,matric:[3,5,6,18],matrice_gradi:3,mauvais:4,max:2,max_carre1:4,max_carre2:4,maximum:[2,4,5],meilleur:11,mercredi:11,mettr:[2,5,12],milieu:12,min:[2,3,4,6],min_chemin:3,min_energie_ba:3,mine:18,mini:3,minim:3,minimal:3,minimum:4,mode:12,modif:18,modifi:[3,6,18],moi:11,moin:[4,6,12],mondai:11,montrer:4,most:2,mot:11,moyen:1,moyenn:5,mp:18,mt:12,n1:[6,11],n2:6,n:[2,3,4,5,6,11,12],n_1:[6,11],n_2:[6,11],n_aret:12,name:2,nameerror:2,ne:[3,4,5,11,12],neq:4,net:4,niveau:3,nk:6,noeud:11,noir:3,nombr:[2,3,4,6,11,12],non:[3,4,12],none:11,note:6,nou:3,nouvel:[11,12],novemb:11,novembr:11,np:3,numpi:3,o:[6,11],objectif:[3,5],objet:2,obtenu:[3,5,11],obtient:5,occur:11,octob:11,octobr:11,officiel:[18,21],ok:11,ont:5,optim:5,optimal:5,option:18,ordr:[5,6,11,12],oreo:11,orthographiqu:11,ou:[3,4,6],oui:4,ouvrir:3,p067_triangl:4,p:[3,6,11,12],pa:[3,4,5,11,12],par:[4,5,11],parcour:[3,11],parcourir:[11,12,18],parcourt:[6,11],parcouru:11,parmi:4,parti:[4,12],particuli:11,partir:[3,4,5],pascal:4,pass:3,passant:6,passer:[3,12],pc:18,permett:12,petit:6,peu:3,peut:[2,3,4,5,6,11,12],pire:4,pixel:3,place:3,plan:18,plot:3,plt:3,plu:[3,5,6,11,12],plusieur:[4,12],pmatrix:2,png:3,poid:[2,5,6],pont:18,pop:[6,12],posera:4,posit:3,positif:5,possibl:3,pour:[2,3,5,6,11,12,21],pourquoi:4,pourra:[3,4,5,11,12],pouvez:[3,12],premier:[5,6],prend:3,prendr:4,princip:[4,18],print:[3,6,11,12],priori:3,prog_dyn:5,programm:[6,12,18,21],project:4,projecteul:4,propos:12,proposit:11,psi:18,pui:[3,5,12],pyplot:3,python:[4,21],pyzo:12,q:12,qcm:18,qu:[4,5,6,11,12],quand:6,que:[2,3,4,5,6,11,12,18],quelconqu:11,quell:[4,5,11],qui:[3,5,6,11,12],r:[2,3,4,6,11],racin:11,rajout:6,randint:5,random:5,rang:[2,3,4,6,11,12],rapid:[3,12],rappel:[5,11,12],rapport:5,ratio:5,readlin:4,recent:2,recherch:12,recopi:6,refais:18,regard:[4,5,12],relat:4,relativ:3,remarqu:[3,4,5,11],remont:[3,5],remplace_cour:6,rempli:[4,12],remplir:[4,12],remplira:4,rempliss:5,rendr:[4,6],renvoi:[2,3,4,5,12],renvoy:[4,11,12],request:4,requis:4,resourc:4,rest:12,restant:5,restreint:12,revers:5,revient:4,revoir:12,right:6,roug:3,s:[4,6,11,12,18,21],sa:[6,11],sac:2,sait:4,samedi:11,san:11,saturdai:11,sauf:[3,4],savoir:[12,18],se:[3,6,12],seam_carv:3,seam_carving_im:3,second:5,semain:11,septemb:11,septembr:11,sera:3,sert:11,set:11,seulement:3,shape:3,shift:12,show:3,si:[3,4,5,6,11,12],simplifi:11,sinon:[4,6,12],site:18,soient:6,soif:6,soit:[3,4,5,12],solut:5,sombr:3,somm:[3,4,6],sommet:[6,11,12],son:[5,11,12],sont:[5,6,11,12],sort:5,sortant:11,sorti:[5,6],sortir:12,sou:[4,11,12],souhait:[3,4,12],souvent:11,split:[4,5],sql:1,sqrt:12,stocker:[4,11],strictement:5,succ:6,successeur:6,suffit:6,suit:[3,12],suivant:[3,4,5,6,11,12],sundai:11,suppos:5,supposera:4,supposon:5,supprim:[3,6,12],sur:[3,4,5,11,12],symetriqu:12,t:[6,11],tableau:3,tableaux:4,taill:[3,4,5,6,11,12],tant:12,techniqu:3,tel:[3,4],tell:[3,4,5,12],temp:[3,4,5],termin:6,test:[11,12],tester:[3,5,11,12],text:6,textbf:12,texte1:6,texte2:6,thursdai:11,time:[3,4,5,12],total:[5,6],tou:12,toujour:5,tout:3,tower:3,tp:18,tr:6,traceback:2,traduct:11,tranch:6,transpose:12,tri:11,tri_poid:5,tri_valeur:5,triangl:4,triant:5,trie:5,trie_add:11,trie_ex:11,trie_ha:11,trie_print:11,trie_siz:11,trier:5,triplet:5,trop:3,trouver:[3,12],tuesdai:11,txt:4,u:[2,6,12],u_0:12,u_:12,u_n:12,un:[2,5,6,11,12,18],underlin:12,uniform:3,uniqu:12,urllib:4,urlopen:4,utilis:[3,4,5,6,11,12],utilisera:11,v2:5,v:[2,5,6,11,12],v_1:5,v_j:5,v_n:5,va:[4,6,11,12],valabl:[3,12],valeur:[2,3,4,5,11],variabl:[3,12],variat:3,vaut:[4,5],vendredi:11,venon:3,versionn:6,vertic:3,verticaux:3,veut:[3,4],vide:[11,12],visit:12,vo:3,voisin:12,votr:[3,12],vou:[3,4,12],vraiment:12,vu:5,w2:5,w:[2,5],w_1:5,w_j:5,w_n:5,wednesdai:11,x:[2,4,11,12,18],y:[3,4,6,11],z:6,zero:3,zeros_lik:3,zone:12},titles:["R\u00e9sum\u00e9 Python","S\u2019entra\u00eener \u00e0 programmer","Programmation dynamique","DM : Redimensionnement d\u2019image par Seam Carving","TP 1 : Programmation dynamique","TP 2 : Probl\u00e8me du sac \u00e0 dos","DS 1 MP* Corrig\u00e9 (X-ENS 2023)","Cours","Exercices","Cours","Exercices","TP : Dictionnaire","TP : R\u00e9visions de 1\u00e8re ann\u00e9e","Cours : Dictionnaire","Exemple : Plus longue sous-suite croissante","Exemple : Algorithmes de plus court chemin","Exercice : Polyn\u00f4mes","Exercice : Chemin dans une matrice","Cours d\u2019informatique commune en 2\u00e8me ann\u00e9e de CPGE au lyc\u00e9e La Martini\u00e8re Monplaisir","Cours","TP","Ressources","Cours : Dictionnaire"],titleterms:{"1":[4,6],"10":6,"11":6,"12":6,"13":6,"14":6,"15":6,"16":6,"17":6,"1\u00e8re":12,"2":[5,6],"2023":6,"2\u00e8me":18,"3":6,"4":6,"5":6,"6":6,"7":6,"8":6,"9":6,"\u00e0":[1,5],"\u00e9l\u00e9ment":11,"\u00e9nergi":3,"\ufb01xe":6,"ann\u00e9":[12,18],"carr\u00e9":4,"corrig\u00e9":6,"di\ufb00\u00e9rentiel":6,"do":5,"enracin\u00e9":11,"entra\u00een":1,"lyc\u00e9":18,"m\u00e9thode":4,"martini\u00e8r":18,"na\u00efv":4,"polyn\u00f4m":16,"pr\u00e9fix":11,"probl\u00e8m":5,"r\u00e9sum\u00e9":0,"r\u00e9vision":12,"repr\u00e9sent":12,"strat\u00e9gi":5,adjac:12,algorithm:[5,15],anagramm:11,arbr:11,au:18,base:12,bellman:2,binomi:4,bonu:3,calcul:3,carv:3,ceux:4,chargement:3,chemin:[2,3,15,17],choisi:5,coeffici:4,commun:18,comparaison:5,cour:[7,9,13,18,19,22],court:[2,15],cpge:18,croissant:14,d:[3,12,18],dan:[4,17],de:[3,4,5,6,12,15,18],dichotomi:12,dictionnair:[11,13,22],dm:3,ds:6,du:[0,5],dynamiqu:[2,3,4,5],en:[6,12,18],enlev:3,exempl:[14,15],exercic:[8,10,11,12,16,17],extrait:0,fini:4,floyd:2,ford:2,glouton:5,gloutonn:5,gradient:3,grand:4,graph:12,i:6,ii:6,imag:3,informatiqu:18,internationalis:11,l:3,la:[5,18],largeur:12,leetcod:1,list:[5,12],longu:14,majoritair:11,matric:[4,12,17],minimum:3,monnai:4,monplaisir:18,mp:6,objet:5,obtenir:5,officiel:0,ont:4,par:[3,6,12],parcour:12,parti:6,plu:[2,4,14,15],posit:6,pour:4,profondeur:12,programm:[0,1,2,3,4,5],python:[0,12],question:[3,4,5,6,12],qui:4,redimensionn:3,rendu:4,ressourc:21,s:1,sac:5,seam:3,solut:[3,11,12],sou:14,suit:14,sur:6,tp:[4,5,11,12,20],tri:5,trie:11,un:[3,4,17],variabl:6,warshal:2,x:6}})
\ No newline at end of file
+Search.setIndex({docnames:["0_python/aide_memoire","0_python/entrainement","dl/algo/prog_dyn/cours/prog_dyn","dl/algo/prog_dyn/seam_carving/seam_carving","dl/algo/prog_dyn/tp/tp1/tp_prog_dyn","dl/algo/prog_dyn/tp/tp2/tp_sac_dos","dl/ds/itc/ds_x23_differentiel/x23","dl/menu/0","dl/menu/1","dl/menu/2","dl/menu/3","dl/python/dict/tp/tp_dict","dl/python/revision/revisions","dl/slides/dict","dl/slides/lis","dl/slides/sp","dl/td/dict_polynome","dl/td/matrice_prog_dyn","intro","menu/0","menu/1","ressource","slides/dict"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["0_python/aide_memoire.ipynb","0_python/entrainement.md","dl/algo/prog_dyn/cours/prog_dyn.ipynb","dl/algo/prog_dyn/seam_carving/seam_carving.ipynb","dl/algo/prog_dyn/tp/tp1/tp_prog_dyn.ipynb","dl/algo/prog_dyn/tp/tp2/tp_sac_dos.ipynb","dl/ds/itc/ds_x23_differentiel/x23.ipynb","dl/menu/0.md","dl/menu/1.md","dl/menu/2.md","dl/menu/3.md","dl/python/dict/tp/tp_dict.ipynb","dl/python/revision/revisions.ipynb","dl/slides/dict.md","dl/slides/lis.md","dl/slides/sp.md","dl/td/dict_polynome.md","dl/td/matrice_prog_dyn.md","intro.md","menu/0.md","menu/1.md","ressource.md","slides/dict.md"],objects:{},objnames:{},objtypes:{},terms:{"0":[2,3,4,5,6,11,12,18],"1":[2,3,5,11,12,18],"10":[2,3,5,12,18],"100":5,"1000":5,"11":[2,12],"12":[2,12],"13":[2,18],"14":[2,12],"15":12,"18":[2,12],"19":[2,6],"1\u00e8re":18,"1er":[5,12],"2":[2,3,4,11,12],"20":4,"200":3,"2023":18,"2024":18,"22":12,"230":3,"231":3,"2787204":12,"28627452":3,"2h":18,"2n":4,"3":[2,4,5,11,12],"3h":18,"3n_1":6,"3u_n":12,"4":[2,4,5,11,12],"42":[5,12],"484":3,"4845":4,"5":[2,4,5,12],"514":3,"54":12,"6":[2,4,5,12],"696":3,"697":3,"698":3,"699":3,"7":[2,4,5,11,12,18],"700":3,"701":3,"702":3,"705":3,"714":3,"8":[2,5,12,18],"895558157":12,"9":[11,12],"\u00e0":[2,3,4,6,11,12,18],"\u00e2":6,"\u00e8":6,"\u00e9chap":12,"\u00e9crire":[3,4,5,11,12],"\u00e9crit":18,"\u00e9crite":11,"\u00e9critur":11,"\u00e9dition":12,"\u00e9gal":6,"\u00e9gale":6,"\u00e9l\u00e9ment":[5,6,12],"\u00e9preuv":18,"\u00e9t\u00e9":[3,12],"\u00e9tant":[3,4],"\u00e9tape":[5,12],"\u00e9tiquet\u00e9":11,"\u00e9tiquett":11,"\u00e9ventuel":12,"\u00e9vite":3,"\u00eatre":[6,11],"al\u00e9atoir":5,"ann\u00e9":21,"ao\u00fbt":11,"appel\u00e9":11,"apr\u00e8":6,"ar\u00eat":[11,12],"arg_apr\u00e8":6,"arg_d\u00e9but":6,"arg_d\u00e9but_apr\u00e8":6,"arg_d\u00e9but_av":6,"associ\u00e9":4,"aucun_caract\u00e8re_commun":6,"autoris\u00e9":2,"bool\u00e9en":12,"capacit\u00e9":[2,5],"caract\u00e8r":[6,11],"case":[4,5,6],"ch\u00e2teau":6,"cha\u00een":[6,11],"cl\u00e9":[6,11,18],"class":[3,12],"commen\u00e7on":3,"compl\u00e9ter":[3,11,12],"compl\u00e9tion":11,"complexit\u00e9":[4,6,11],"concat\u00e9n":6,"conna\u00eetr":[4,18],"consid\u00e8r":[3,4,11],"consid\u00e9r":5,"consid\u00e9ron":12,"coordonn\u00e9":4,"corrig\u00e9":18,"cr\u00e9er":[3,11,12],"d\u00e9but":[6,12],"d\u00e9but_apr\u00e8":6,"d\u00e9but_av":6,"d\u00e9cembr":11,"d\u00e9clench":12,"d\u00e9croissant":5,"d\u00e9duir":[4,5,12],"d\u00e9duit":12,"d\u00e9fini":[3,12],"d\u00e9finir":[3,4,11,12],"d\u00e9finit":3,"d\u00e9form\u00e9":3,"d\u00e9j\u00e0":11,"d\u00e9passent":4,"d\u00e9passer":3,"d\u00e9termin":[4,12],"degr\u00e9":12,"demand\u00e9":4,"derni\u00e8r":[3,18],"diff\u00e9renc":6,"diff\u00e9rent":[5,11],"diff\u00e9rentiel":6,"do":2,"donn\u00e9":[3,4,5,12],"dur\u00e9":18,"encadr\u00e9":12,"enl\u00e8v":3,"enl\u00e8veron":3,"entr\u00e9":[5,6,12],"entra\u00een":[18,21],"etiquet\u00e9":11,"ex\u00e9cut":[5,12],"exc\u00e8d":5,"f\u00e9vrier":11,"fa\u00e7on":[3,4,12],"fin_apr\u00e8":6,"final":3,"float":[2,3,4,12],"forc\u00e9ment":12,"fran\u00e7ai":11,"fus\u00e9":12,"g\u00e9n\u00e8re":5,"g\u00e9n\u00e9r\u00e9e":5,"g\u00e9n\u00e9ral":4,"i\u00e8m":[2,3],"imbriqu\u00e9":4,"import":[2,3,4,5,12],"ins\u00e9r\u00e9":6,"int":4,"int\u00e9ress":5,"int\u00e9ressant":6,"intensit\u00e9":3,"it\u00e9rat":6,"long":11,"m\u00e9mo\u00efsat":[4,18],"m\u00e9thode":[3,12],"m\u00eame":[3,4,5,6,11],"mod\u00e9lis":18,"n\u00e9cessair":12,"num\u00e9ro":3,"o\u00f9":[2,3,4,5,6,11,12],"op\u00e9rat":6,"p\u00e8re":11,"pi\u00e8c":4,"pic\u00e8":4,"plut\u00f4t":4,"pointill\u00e9":4,"poss\u00e8d":[4,11],"possibilit\u00e9":[4,6,12],"pr\u00e9alabl":4,"pr\u00e9c\u00e9dent":[3,4,11,12],"premi\u00e8r":[3,4,21],"probl\u00e8m":[4,12],"propri\u00e9t\u00e9":[6,11],"r\u00e9\u00e9crire":[4,5],"r\u00e9alis":3,"r\u00e9currenc":[4,5],"r\u00e9cursiv":[4,11,12,18],"r\u00e9gion":3,"r\u00e9soudr":4,"r\u00e9sultat":5,"r\u00e9sum\u00e9":21,"r\u00e9utilis":[5,12],"recherch\u00e9":11,"redimensionn\u00e9":3,"rentr\u00e9":18,"renvoy\u00e9":3,"repr\u00e9sent":[3,11],"repr\u00e9sent\u00e9":[3,11],"return":[2,3,4,5,6,11,12],"rh\u00f4ne":3,"sup\u00e9lec":18,"suppl\u00e9mentair":11,"supprim\u00e9":6,"sym\u00e9triqu":12,"t\u00e9l\u00e9chargeant":3,"t\u00e9l\u00e9charger":4,"t\u00e9l\u00e9phone":11,"texte_versionn\u00e9":6,"textes_\u00e9gaux":6,"totalit\u00e9":6,"tr\u00e8":4,"transpos\u00e9":12,"tri\u00e9":5,"tri\u00e9e":[5,12],"trouv\u00e9":[6,12],"true":[4,5,6,11,12],"utilis\u00e9":[4,11],"v\u00e9rifi":12,"v\u00e9rifier":[3,11,12],"visit\u00e9":[6,12],"while":[5,6,12],A:[6,12],In:2,On:[3,4,5,6,11,12],_:[4,5,6,12],a_1:4,a_2:4,a_3:4,a_k:4,ab:3,abord:5,absolu:3,actuel:5,acycliqu:11,admiss:6,affich:[3,5,11,12],affichag:3,ainsi:[3,4,18],air:5,ajout:[3,4,5,6,11,12,18],algorithm:6,algorithmiqu:1,all:12,alor:[3,4,5,6],alp:3,anglai:11,annot:6,annul:6,apparaiss:11,apparten:11,apparti:[11,12],appel:[4,11,12],append:[3,5,6,12],appendleft:12,appliqu:6,approx:18,april:11,arc:6,aret:11,arg_av:6,argument:[4,12],arrai:[3,6],art:11,assert:[4,6,12],associ:11,atteindr:3,attent:3,au:[3,4,5,6,11,12],aucun:4,august:11,aussi:11,automatiqu:11,autr:[3,18],auvergn:3,aux:[2,4,11,12,18],auxiliair:11,avant:6,avec:[3,4,5,6,11,12,18],avez:[3,4],avoir:11,avril:11,ax:11,ayant:11,b:[5,6,11,12],ba:[3,4,6,12],base:[4,6],basthon:[3,12],bcpst:21,beaucoup:4,becirspah:21,begin:[2,6],besoin:12,bf:12,bien:[3,6],binom:4,binom_dp:4,binom_memo:4,binom_rec:4,blanc:3,bord:3,boucl:[4,11,12,18],box:[4,12],c:[2,3,4,5,6,11,12],ca:[4,5,6,11],cach:2,calcul:[4,6,12],call:2,cap:11,capytal:3,car:[4,6,11],cart:11,cat:11,caus:4,ccinp:18,cd:11,ce:[3,4,5,6,11,12],cela:[3,4,5,11,12],cell:[2,4,6],cellul:12,central:18,cepend:6,cet:5,cett:[3,4,11,12],ceux:11,chacun:6,chaqu:[3,5,6,11,12],chargeant:3,charger:3,chemin:[11,18],cherch:12,chercher:3,chien:6,choisir:5,choisiss:5,choisit:5,choix:[3,12],ci:[3,4,5,6,11,12],clairement:6,classiqu:[3,12],cliquant:12,cliquer:3,cmap:3,code:[3,11,12],coeffici:18,collect:12,colonn:[3,4],combin:5,comm:[3,4,6,12],command:12,commenc:[3,6,12],commis:5,compar:[4,5,12],compt:[3,11],comptant:11,concour:18,confirm:18,conflit:6,connect:3,connex:[11,12],conserv:[4,11],consist:[3,5,12],construir:[4,5],construit:3,conten:[3,11,12],contenir:11,contenu:4,contiendra:4,contienn:[4,11],contient:[3,4,5,6,11],contient_carr:4,convers:3,copi:[2,4,6,11],copier:11,cor:11,cord:11,corn:11,correct:11,correspond:[3,4,6,11],correspondr:6,couleur:3,count:11,coupl:5,cour:[4,5,11,12,21],courant:[6,11],croissant:[4,5,6,12],ctrl:12,cycl:11,d1:11,d2:11,d:[1,2,4,5,6,11],d_:3,dan:[2,3,5,6,11,12,18],de:[1,2,11,21],decemb:11,deepcopi:2,def:[2,3,4,5,6,11,12],defin:2,deg:12,depui:[3,12],dequ:12,dernier:12,descendr:11,dessin:11,dessou:[5,6,11,12],dessu:[3,4,11,12],deux:[4,5,6,11,12],df:12,dict:11,dictionnair:[4,18],diff1:6,diff2:6,diff:6,dijkstra:6,dimanch:11,dimens:[3,4],diminu:6,dire:[3,4,11,12],direct:11,dist:[2,6,12],dist_fin:6,distanc:[6,12],distingu:[4,5],dit:11,divis:12,doit:11,donc:[3,4,5,6,12],donner:5,dont:4,dorer:11,dp:[2,5],dp_:2,dp_chemin:3,droit:[4,6,12],ds:18,du:[3,4,6,11,12],dynamiqu:[6,18],e:[6,11,12],effectu:3,efficac:5,elif:[6,12],ell:5,els:[2,4,5,6,11,12],en:[3,4,5,11],encor:[4,12],end:[2,6],enlever_chemin:3,ensembl:[6,11],ent:3,entier:[4,5],entr:[3,5,6,11,12],enver:3,erreur:[5,12],est:[2,3,4,5,6,11,12],est_carr:4,et:[2,3,4,5,6,11,12,18],euro:4,exempl:[3,4,5,11,12],exercic:[1,18,21],exist:11,expliqu:4,exprim:5,extrair:12,extraire_min:6,extrait:6,f:[4,5,6,11],facil:[1,3],fair:[4,6],fals:[4,6,11,12],faut:[3,4,6,12],februari:11,feuill:11,fichier:[3,4],figur:6,fil:11,file:[6,12],fin:[6,11],fin_av:6,flottant:3,floydwarshal:2,foi:[3,4,5,6,12],fonction:[3,4,5,6,11,12,18],form:[11,12],formul:[3,4,5],fort:[3,6],fr_to_en:11,frac:4,fridai:11,from:[2,12],functool:2,fusionn:6,g:[2,3,6,12],g_:3,g_list:12,gauch:[3,4,6,12],genere_inst:5,geq:[4,5],glouton_poid:5,glouton_ratio:5,glouton_valeur:5,gp:5,gr:5,grai:3,grand:[3,6],graph:[6,11],gri:3,gro:4,gv:5,h:6,haut:[3,4,6,11,12],hauteur:3,heuristiqu:6,historiqu:6,hor:12,http:4,i:[2,3,4,5,11,12],ici:[3,12],identifi:3,identiqu:6,il:[3,4,5,6,11,12],importera:5,imposs:4,imread:3,imshow:3,inclu:5,indic:[3,4,6,11,12],inf:[2,4,12],infti:[2,4],initialis:4,inscrir:4,inscriv:4,instanc:5,instruct:3,intuitiv:3,invers:[3,6],j:[2,3,4,5,6,12],j_mini:3,januari:11,janvier:11,jeu:12,jeudi:11,jour:11,juillet:11,juin:11,juli:11,june:11,jusqu:3,just:11,k:[2,3,4,6,11],knapsack2:2,knapsack:2,knapsack_memo2:2,knapsack_memo:2,l1:[5,12],l2:[5,12],l3:12,l:[2,4,5,6,11,12],la:[2,3,4,6,11,12],lamartin:11,lambda:4,largeur:3,last:2,ldot:4,le:[2,3,4,5,6,11,12,18],left:6,len:[2,3,4,5,6,11,12],leq:5,lequel:5,lesquel:12,lettr:[6,11],leur:[6,11],levenshtein:6,lexicographiqu:5,lieu:12,lign:[3,4],line:2,linewidth:3,list:[3,4,6,11],ll:6,log:6,logarithmiqu:6,longueur:[5,6,11],lor:12,lundi:11,m1:11,m2:[3,11],m:[2,3,4,6,11,12,21],m_:3,ma:3,mai:[4,11],mainten:[3,12],majoritaire2:11,make_matrix2:12,make_matrix3:12,make_matrix:12,map:4,mar:11,march:11,mardi:11,marquer:12,mat_to_list:12,math:18,mathbf:12,matplotlib:3,matric:[3,5,6,18],matrice_gradi:3,mauvais:4,max:[2,4,5],max_carre1:4,max_carre2:4,maximum:[2,4,5],meilleur:11,mercredi:11,mettr:[2,5,12],mieux:4,milieu:12,min:[2,3,4,6],min_chemin:3,min_energie_ba:3,mine:18,mini:3,minim:3,minimal:3,minimum:4,mode:12,modif:18,modifi:[3,6,18],moi:11,moin:[4,6,12],mondai:11,montrer:4,most:2,mot:11,moyen:1,moyenn:5,mp:18,mt:12,n1:[6,11],n2:6,n:[2,3,4,5,6,11,12],n_1:[6,11],n_2:[6,11],n_aret:12,name:2,nameerror:2,ne:[3,4,5,11,12],neq:4,net:4,niveau:3,nk:6,noeud:11,noir:3,nombr:[2,3,4,6,11,12],non:[3,4,12],none:11,note:6,nou:3,nouvel:[11,12],novemb:11,novembr:11,np:3,numpi:3,o:[4,6,11],o_j:5,objectif:[3,5],objet:2,obtenu:[3,5,11],obtient:5,occur:11,octob:11,octobr:11,officiel:[18,21],ok:11,ont:5,optim:5,optimal:5,option:18,ordr:[5,6,11,12],oreo:11,orthographiqu:11,ou:[3,4,6],oui:4,ouvrir:3,p067_triangl:4,p:[3,6,11,12],pa:[3,4,5,11,12],par:[4,5,11],parcour:[3,11],parcourir:[11,12,18],parcourt:[6,11],parcouru:11,parmi:4,parti:[4,12],particuli:11,partir:[3,4,5],pascal:4,pass:3,passant:6,passer:[3,12],pc:18,permett:12,petit:6,peu:3,peut:[2,3,4,5,6,11,12],pire:4,pixel:3,place:3,plan:18,plot:3,plt:3,plu:[3,5,6,11,12],plusieur:[4,12],pmatrix:2,png:3,poid:[2,5,6],pont:18,pop:[6,12],posera:4,posit:3,positif:5,possibl:3,pour:[2,3,5,6,11,12,21],pourquoi:4,pourra:[3,4,5,11,12],pouvez:[3,12],premier:[5,6],prenant:5,prend:3,prendr:[4,5],princip:[4,18],print:[3,5,6,11,12],priori:3,prog_dyn:5,programm:[6,12,18,21],project:4,projecteul:4,propos:12,proposit:11,psi:18,pui:[3,5,12],pyplot:3,python:[4,21],pyzo:12,q:12,qcm:18,qu:[4,5,6,11,12],quand:6,que:[2,3,4,5,6,11,12,18],quelconqu:11,quell:[4,5,11],qui:[3,5,6,11,12],r:[2,3,4,6,11],racin:11,rajout:6,randint:5,random:5,rang:[2,3,4,5,6,11,12],rapid:[3,12],rappel:[5,11,12],rapport:5,ratio:5,readlin:4,recent:2,recherch:12,reconstruct:5,recopi:6,refais:18,regard:[4,5,12],relat:4,relativ:3,remarqu:[3,4,5,11],remont:[3,5],remplace_cour:6,rempli:[4,12],remplir:[4,12],remplira:4,rempliss:5,rendr:[4,6],rendu_memo:4,renvoi:[2,3,4,5,12],renvoy:[4,11,12],request:4,requis:4,resourc:4,rest:12,restant:5,restreint:12,revers:5,revient:4,revoir:12,right:6,roug:3,s:[4,5,6,11,12,18,21],sa:[6,11],sac:2,sait:4,samedi:11,san:[5,11],saturdai:11,sauf:[3,4],savoir:[12,18],se:[3,6,12],seam_carv:3,seam_carving_im:3,second:5,semain:11,septemb:11,septembr:11,sera:3,sert:11,set:11,seulement:3,shape:3,shift:12,show:3,si:[3,4,5,6,11,12],simplifi:11,sinon:[4,6,12],site:18,soient:6,soif:6,soit:[3,4,5,12],sol:5,sombr:3,somm:[3,4,6],sommet:[6,11,12],son:[5,11,12],sont:[4,5,6,11,12],sort:5,sortant:11,sorti:[5,6],sortir:12,sou:[4,11,12],souhait:[3,4,12],souvent:11,split:[4,5],sql:1,sqrt:12,stocker:[4,11],strictement:5,substack:5,succ:6,successeur:6,suffit:6,suit:[3,12],suivant:[3,4,5,6,11,12],sum_:4,sundai:11,suppos:5,supposera:4,supposon:5,supprim:[3,6,12],sur:[3,4,5,11,12],symetriqu:12,t1:5,t2:5,t:[5,6,11],tableau:3,tableaux:4,taill:[3,4,5,6,11,12],tant:12,techniqu:3,tel:[3,4],tell:[3,4,5,12],temp:[3,4,5],termin:6,test:[11,12],tester:[3,5,11,12],text:[4,5,6],textbf:12,texte1:6,texte2:6,thursdai:11,time:[3,4,5,12],total:[4,5,6],tou:12,toujour:5,tout:3,tower:3,tp:18,tr:6,traceback:2,traduct:11,tranch:6,transpose:12,tri:11,tri_poid:5,tri_ratio:5,tri_valeur:5,triangl:4,triant:5,trie:5,trie_add:11,trie_ex:11,trie_ha:11,trie_print:11,trie_siz:11,trier:5,triplet:5,trop:3,trouver:[3,12],tuesdai:11,txt:4,u:[2,6,12],u_0:12,u_:12,u_n:12,un:[2,5,6,11,12,18],underbrac:5,underlin:12,uniform:3,uniqu:12,urllib:4,urlopen:4,utilis:[3,4,5,6,11,12],utilisera:11,v2:5,v:[2,5,6,11,12],v_1:5,v_j:5,v_n:5,va:[4,6,11,12],valabl:[3,12],valeur:[2,3,4,5,11],variabl:[3,12],variat:3,vaut:[4,5],vendredi:11,venon:3,versionn:6,vertic:3,verticaux:3,veut:[3,4],vide:[11,12],visit:12,vo:3,voir:4,voisin:12,votr:[3,12],vou:[3,4,12],vraiment:12,vu:5,w2:5,w:[2,5],w_1:5,w_j:5,w_n:5,wednesdai:11,x:[2,4,11,12,18],y:[3,4,6,11],z:6,zero:3,zeros_lik:3,zone:12},titles:["R\u00e9sum\u00e9 Python","S\u2019entra\u00eener \u00e0 programmer","Programmation dynamique","DM : Redimensionnement d\u2019image par Seam Carving","TP 1 : Programmation dynamique","TP 2 : Probl\u00e8me du sac \u00e0 dos","DS 1 MP* Corrig\u00e9 (X-ENS 2023)","Cours","Exercices","Cours","Exercices","TP : Dictionnaire","TP : R\u00e9visions de 1\u00e8re ann\u00e9e","Cours : Dictionnaire","Exemple : Plus longue sous-suite croissante","Exemple : Algorithmes de plus court chemin","Exercice : Polyn\u00f4mes","Exercice : Chemin dans une matrice","Cours d\u2019informatique commune en 2\u00e8me ann\u00e9e de CPGE au lyc\u00e9e La Martini\u00e8re Monplaisir","Cours","TP","Ressources","Cours : Dictionnaire"],titleterms:{"1":[4,6],"10":6,"11":6,"12":6,"13":6,"14":6,"15":6,"16":6,"17":6,"1\u00e8re":12,"2":[5,6],"2023":6,"2\u00e8me":18,"3":6,"4":6,"5":6,"6":6,"7":6,"8":6,"9":6,"\u00e0":[1,5],"\u00e9l\u00e9ment":11,"\u00e9nergi":3,"\ufb01xe":6,"ann\u00e9":[12,18],"carr\u00e9":4,"corrig\u00e9":6,"di\ufb00\u00e9rentiel":6,"do":5,"enracin\u00e9":11,"entra\u00een":1,"lyc\u00e9":18,"m\u00e9thode":4,"martini\u00e8r":18,"na\u00efv":4,"polyn\u00f4m":16,"pr\u00e9fix":11,"probl\u00e8m":5,"r\u00e9sum\u00e9":0,"r\u00e9vision":12,"repr\u00e9sent":12,"strat\u00e9gi":5,adjac:12,algorithm:[5,15],anagramm:11,arbr:11,au:18,base:12,bellman:2,binomi:4,bonu:3,calcul:3,carv:3,ceux:4,chargement:3,chemin:[2,3,15,17],choisi:5,coeffici:4,commun:18,comparaison:5,cour:[7,9,13,18,19,22],court:[2,15],cpge:18,croissant:14,d:[3,12,18],dan:[4,17],de:[3,4,5,6,12,15,18],dichotomi:12,dictionnair:[11,13,22],dm:3,ds:6,du:[0,5],dynamiqu:[2,3,4,5],en:[6,12,18],enlev:3,exempl:[14,15],exercic:[8,10,11,12,16,17],extrait:0,fini:4,floyd:2,ford:2,glouton:5,gloutonn:5,gradient:3,grand:4,graph:12,i:6,ii:6,imag:3,informatiqu:18,internationalis:11,l:3,la:[5,18],largeur:12,leetcod:1,list:[5,12],longu:14,majoritair:11,matric:[4,12,17],minimum:3,monnai:4,monplaisir:18,mp:6,objet:5,obtenir:5,officiel:0,ont:4,par:[3,6,12],parcour:12,parti:6,plu:[2,4,14,15],posit:6,pour:4,profondeur:12,programm:[0,1,2,3,4,5],python:[0,12],question:[3,4,5,6,12],qui:4,redimensionn:3,rendu:4,ressourc:21,s:1,sac:5,seam:3,solut:[3,4,5,11,12],sou:14,suit:14,sur:6,tp:[4,5,11,12,20],tri:5,trie:11,un:[3,4,17],variabl:6,warshal:2,x:6}})
\ No newline at end of file