From a44125050888a9e8e8cb007f697bd9bd0671e4bd Mon Sep 17 00:00:00 2001 From: witek-formanski Date: Mon, 22 Jan 2024 22:21:38 +0100 Subject: [PATCH] =?UTF-8?q?dynamiczne=20+=20zach=C5=82anne=20+=20backtrack?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cw13/zad12/zeckendorf.cpp | 0 src/cw13/zad4/lamiglowka.cpp | 13 +++++++++++++ src/cw13/zad8/fib_seq.cpp | 18 ++++++++++++++++++ src/cw13/zad9/chyba_backtrack.cpp | 0 4 files changed, 31 insertions(+) create mode 100644 src/cw13/zad12/zeckendorf.cpp create mode 100644 src/cw13/zad4/lamiglowka.cpp create mode 100644 src/cw13/zad8/fib_seq.cpp create mode 100644 src/cw13/zad9/chyba_backtrack.cpp diff --git a/src/cw13/zad12/zeckendorf.cpp b/src/cw13/zad12/zeckendorf.cpp new file mode 100644 index 0000000..e69de29 diff --git a/src/cw13/zad4/lamiglowka.cpp b/src/cw13/zad4/lamiglowka.cpp new file mode 100644 index 0000000..7c4e11a --- /dev/null +++ b/src/cw13/zad4/lamiglowka.cpp @@ -0,0 +1,13 @@ +/* +wrzucamy wszystkie liczby na kolejkę priorytetowa (najmnnijesze na początku) +jeżeli dwa pierwsze są równe, to je "sklejamy" i wrzucamy dwukrotność na kolejkę +jeżeli dwa pierwsze różne, to wyrzucamy pierwszy +*/ + +#include +#include + +int lamiglowka(std::vector v) { + std::priority_queue, std::greater> q(v.begin(), v.end()); + +} \ No newline at end of file diff --git a/src/cw13/zad8/fib_seq.cpp b/src/cw13/zad8/fib_seq.cpp new file mode 100644 index 0000000..f4e9e3b --- /dev/null +++ b/src/cw13/zad8/fib_seq.cpp @@ -0,0 +1,18 @@ +/* +zaczynamy od tyłu (od n w dół) +tworzymy tablicę od 1 do n +inicjalizujemy wszystko poza n na -1 +idziemy BFSem +w każdym kroku wykonujemy każde możliwe +pojedyncze działanie (podzielenie przez fib mniejsze niż n + 1 i odjęcie) +jeżeli działanie miałoby nas doprowadzić do miejsca w tablicy +odwiedzonego wcześniej, to go nie wykonujemy +kończymy gdy dotrzemy do pierwszego elementu tablicy +(zamiast tablicy może być mapa) + +ścieżka ma długość co najwyżej 2logn (suma bitów i jedynek w zapisie binarnym n) +ciąg fib rośnie wykładniczo, więc liczb fib mniejszych równych n jest logn + +M(n) = O(n) +T(n) = O(log^2 n) +*/ \ No newline at end of file diff --git a/src/cw13/zad9/chyba_backtrack.cpp b/src/cw13/zad9/chyba_backtrack.cpp new file mode 100644 index 0000000..e69de29