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%