Hanging Rack – Omówienie zadania z Europejskiej Olimpiady Informatycznej Juniorów (EJOI)

Hanging Rack – Omówienie zadania z Europejskiej Olimpiady Informatycznej Juniorów (EJOI)

Szczegółowe omówienie zadania Hanging Rack:

Link do powyższego omówienia zadania Hanging Rack: https://youtu.be/tO1WjVAICMs?t=1257
Omówienie kodu który zadania Hanging Rack: https://youtu.be/tO1WjVAICMs?t=4360

Link do treści zadania Hanging Rack i możliwości umieszczania rozwiązań: https://oj.uz/problem/view/eJOI19_rack


Zadanie z EJOI – Europejskiej Olimpiady Informatycznej Juniorów! https://youtu.be/tO1WjVAICMs?t=15


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: https://oki.org.pl/harmonogram-zajec/
Informacje o zajęciach: https://oki.org.pl/newsletter.php

Warto startować w Olimpiadzie Informatycznej!
https://youtu.be/K7fZfJ8nN6A?t=109


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


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

const int MOD = 1e9 + 7;

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

	int n;
	long long k;
	cin >> n >> k;
	--k;

	int wynik = 1;
	for (int i = 1; i <= n; ++i) {
		if (k % 2 == 0)
			wynik = ((long long)2*wynik) % MOD;
		else
			wynik = ((long long)2*wynik + 1) % MOD;
		k /= 2;
	}

	int pow2 = 1;
	for (int i = 1; i <= n; ++i)
		pow2 = ((long long)2*pow2) % MOD;

	cout << (wynik - (pow2 - 1) + MOD) % MOD << '\n';
	return 0;
}
Kod C++ programu Hanging Rack, który jest omówiony w powyższym filmie i który otrzymuje 100%

 


Kod Python programu Milk Pails, który otrzymuje 100%:

MOD = 10**9 + 7

def solve():
	n, k = map(int, input().split())
	k -= 1
	wynik = 1
	for i in range(n):
		if (k % 2 == 0):
			wynik = (2*wynik) % MOD
		else:
			wynik = (2*wynik + 1) % MOD
		k //= 2;

	pow2 = 1
	for i in range(n):
		pow2 = (2*pow2) % MOD
	print((wynik - (pow2 - 1)) % MOD)

solve()

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz