Podsumowanie OKI #18

Podsumowanie OKI #18

Potyczki algorytmiczne – Mistrzostwa Polski w algorytmice!
https://tiny.pl/ts82t

Rozwiązujemy zadania z Mistrzostw – z grupy trudniejszej!
Okazał się… banalne!!!
https://tiny.pl/ts82w
JESTEŚMY MOCNI!

Co to jest drzewo / co to jest graf?
https://tiny.pl/ts8pz

Omówienie zadania Zabawa Bajtka
Omawia Jasiek Strzeszyńki, zwycięzca Olimpiady Informatycznej Juniorów, złoty medalista Europejskiej Olimpiady Informatycznej Juniorów
https://tiny.pl/ts86q

Czytamy uważnie treść zadania czyli…  Jak rozwiązywać problemy?
https://tiny.pl/ts3vp

Krok po kroku jesteśmy Mistrzami!
Daniel Olkowski

——————–
Omówienie zadania Poddrzewo:
https://youtu.be/DsYaobsHhSk?t=1919
Link do zadania Poddrzewo:
https://tiny.pl/ts8kb

Kod C++ programu Poddrzewo, który otrzymuje 100%

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

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

int ile_wierzcholkow, ile_stopni_1;
int akt_stopien;
int i;

cin >> ile_wierzcholkow;

ile_stopni_1 = 0;
for (i=1; i<=ile_wierzcholkow; ++i) {
cin >> akt_stopien;
if (akt_stopien == 1 )
++ile_stopni_1;
}

if ( ile_stopni_1 >= 2)
cout << „0\n”;
else if ( ile_stopni_1 == 1 )
cout << „1\n”;
else
cout << „2\n”;
cout << „2\n”;
cout << „1 2\n”;

return 0;
}

——————–
Omówienie zadania Zabawa Bajtek.
Omawia Jasiek Strzeszyński – zwycięzca Olimpiady Informatycznej Juniorów i złoty medalista Europejskiej Olimpiady Informatycznej Juniorów
https://youtu.be/DsYaobsHhSk?t=4947
Link do zadania Zabawa Bajtka:
https://szkopul.edu.pl/problemset/problem/zabawa/site/

Kod C++ programu Zabawa Bajtka, który omówił Jasiek Strzeszyński i który otrzymuje 100%

#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
using namespace std;
int n,k,w;
string s,akt;
void solve(int mi,int mx)
{
int i,j;
for(i=0;i+s.size()-1<akt.size();i++)
{
for(j=0;j<s.size();j++)
{
if(s[j]!=akt[i+j])
break;
}
if(j>=s.size())
{
w++;
break;
}
}
if(akt.size()==n)
return;
for(char c=max(‚a’,(char)(mx-k));c<=min(‚z’,(char)(mi+k));c++)
{
akt+=c;
solve(min(mi,(int)c),max(mx,(int)c));
akt.pop_back();
}
return;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n>>k>>s;
for(char c=’a’;c<=’z’;c++)
{
akt=c;
solve(c,c);
}
cout<<w<<„\n”;
return 0;
}