JavaRush /Blog Java /Random-PL /Problemy algorytmiczne
Joysi
Poziom 41

Problemy algorytmiczne

Opublikowano w grupie Random-PL
Mocną stroną JavaRush jest bogactwo praktyki, która w dużym stopniu pomaga utrwalić materiał przekazywany na wykładach. Tutaj 95% zadań skupia się na praktyce pisania programów aplikacyjnych lub serwerowych. Wspaniale jest ćwiczyć materiały prezentowane na wykładach (kolekcje, generyczne, tablice, wielowątkowość itp.) lub stopniowo tworzyć i refaktoryzować problemy z wieloma klasami i ich interakcjami (duże). Są problemy algorytmiczne jak powiew świeżego powietrza (każdy zapewne pamięta ostatni bonus poziomu 20, budowanie binarnej listy drzewek), ale ich liczba nie jest duża. Jest to zrozumiałe, kurs poświęcony jest praktyce stosowanej, a nie algorytmice (co wymaga znacznie więcej teorii cybernetyki i matematyki). Tym, którzy są nieco podobni do mnie, jeśli chodzi o to, że czasami trochę się rozpraszają i ćwiczą więcej umiejętności matematycznych w programowaniu, polecam http://codeforces.com/. Problemy z tym związane można rozwiązać (wśród innych języków programowania) w Javie 7/8. Pula zadań (oprócz nich organizowane są także konkursy) dostępna jest na stronie http://codeforces.com/problemset. Oprócz nich są konkursy itp. 100% podejmuje decyzję w pojedynczym pliku Java, używając pakietu domyślnego (to znaczy, że w pliku Java nie określono żadnego pakietu), a punktem wejścia jest public static void main(String[] args). Nie próbowałem innych opcji przesyłania rozwiązania. Podam przykład najprostszego problemu (http://codeforces.com/problemset/problem/1/A) z rozwiązaniem (potraktuj to jako przykład testowy), abyś mógł go użyć jako pustego miejsca przy rozwiązywaniu innych : import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать Lub дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади. Входные данные В первой строке записано три целых натуральных числа n, m и a (1 ≤ n, m, a ≤ 10^9). Выходные данные Выведите искомое количество плит. */ public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] s=reader.readLine().split(" "); long n = Long.parseLong(s[0]); long m = Long.parseLong(s[1]); long a = Long.parseLong(s[2]); reader.close(); long cntSide1 = n/a + (int) Math.signum(n%a); long cntSide2 = m/a + (int) Math.signum(m%a); System.out.print(cntSide1*cntSide2); } } Po stworzeniu programu i samodzielnym przetestowaniu go wgraj plik na stronę, wkrótce rozpocznie się weryfikacja i będziesz mógł obserwować jej przebieg. Dodatkowo możesz przeglądać dane testowe podczas procesu weryfikacji i wykorzystać je do skorygowania programu w przypadku niepowodzenia któregoś z testów. PS Jeśli administracja uzna to za reklamę zasobu strony trzeciej, możesz go usunąć. Choć osobiście uważam, że dodatkowe ćwiczenia dla mózgu pod kątem algorytmów nie zaszkodzą. PSS Jeśli istnieją inne podobne zasoby, napisz w komentarzach (najlepiej w rozbudowanych - zalety, wady i przykłady rozwiązanych problemów testowych, aby inni mogli łatwo zacząć).
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION