SQUFOF – Omówienie zadania – Binary Search po wyniku

Szczegółowe omówienie zadania SQUFOF:

Link do powyższego omówienia zadania SQUFOF: https://youtu.be/pzPACXcSuss?t=1755
Link do treści zadania SQUFOF: https://szkopul.edu.pl/problemset/problem/fof/site

Zadanie SQUFOF wykorzystuje pokazuje wyszukiwanie binarne po wyniku: https://youtu.be/x9mQ4zs410g?t=2435
Gdzie wykorzystuje się Binary Search? https://youtu.be/81P5ZalDPoc?t=3505

Jak się uczyć na podstawie tego zadania? https://youtu.be/QgLyXYmFQeU?t=2019
Pamiętaj by zajrzeć max 1 raz – wtedy się rozwijasz: https://youtu.be/pkLXuuOe_qA?t=3625

Lista zadań z rozwiązaniami: https://oki.org.pl/lista-zadan-materialy.php
Samouczek – przygotowanie do Olimpiad: https://oki.org.pl/tutorial/

Zajęcia Olimpiada Informatyczna POZIOM II: https://oki.org.pl/olimpiada-informatyczna-poziom-ii/
Wszystkie zajęcia: https://oki.org.pl/harmonogram-zajec/
Informacje o zajęciach: https://oki.org.pl/newsletter.php


Kod C++ programu "SQUFOF", który jest omówiony w powyższym filmie i który otrzymuje 100%


#include <bits/stdc++.h>
using namespace std;

const long long infinity = 1e18 + 7;
int T;

bool czy_za_duza(long long liczba, long long n, int m)
{
    long long aktualny = 1;
    for (int i = 1; i <= m; i++)
    {
        if (infinity / liczba >= aktualny) // aktualny * liczba <= infinity
            aktualny *= liczba;
        else
            return true;
        
        if (aktualny > n)
            return true;
    }
    return false;
}

long long bin_search(long long n, int m)
{
    long long p = 1, k = n + 1, s;

    while (k - p > 1)
    {
        s = (p + k) / 2;

        if (czy_za_duza(s, n, m))
            k = s;
        else
            p = s;
    }

    return p;
}

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    cin >> T;

    for (int t = 0; t < T; t++)
    {
        long long n;
        int m;
        cin >> n >> m;

        cout << bin_search(n, m) << "\n";        
    }
    return 0;
}
Kod C++ programu "SQUFOF", który jest omówiony w powyższym filmie i który otrzymuje 100%

 

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz