JavaRush /Java блог /Random UA /Алгоритмічні завдання
Joysi
41 рівень

Алгоритмічні завдання

Стаття з групи Random UA
Сильний коник JavaRush - достаток практики, що сприяє закріпленню даного на лекціях матеріалу. Тут 95% завдань із ухилом у практику написання прикладних чи серверних програм. Це чудово закріпити на практиці подані на лекціях матеріали (колекції, дженерики, масиви, багатопоточність тощо) або поетапно створювати та рефакторити завдання з безліччю класів та їх взаємодії (big-і). Як ковток свіжого повітря зустрічаються алгоритмічні завдання (усі, напевно, згадують останній бонус 20-го рівня, побудови бінарного дерева-списку), але їхня кількість не велика. Воно і зрозуміло, курс присвячений прикладній практиці, а не алгоритміці (яка потребує набагато більше теорії кібернетики та математики). Тим, хто в чомусь схожий на мене в плані іноді трохи відволіктися і потренувати математичні навички в програмуванні, рекомендую http://codeforces.com/ . Тамтешні завдання можна вирішувати (крім інших мов програмування) і Java 7/8. Пул завдань (крім них влаштовуються та змагання), доступний на http://codeforces.com/problemset. Крім них є і змагання тощо. 100% приймає рішення в єдиному java-файлі з використанням стандартного пакета (тобто немає java-файлі вказівки package) і точкою входу public static void main(String[] args). Інші варіанти надсилання рішення я не пробував. Наведу приклад найпростішого завдання ( http://codeforces.com/problemset/problem/1/A ) з рішенням (сприймайте як тестовий приклад), щоб могли використовувати як болванку при вирішенні інших: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать або дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади. Входные данные В первой строке записано три целых натуральных числа 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); } } Після створення програми та самостійного її тестування - завантажуйте файл на сайт, перевірка почнеться найближчим часом, і ви можете спостерігати за її процесом. Додатково можна переглянути тестові дані в процесі перевірки та використовувати їх для корекції програми у разі провалу одного з тестів. PS Якщо адміністрація вважає рекламою стороннього ресурсу - можете видалити. Хоча особисто я вважаю, що додаткова зарядка мозку в плані алгоритміки не завадить. PSS Якщо є інші подібні ресурси – пишіть у коментарях (краще у розгорнутих – плюси, мінуси та приклади вирішених тестових завдань для легкого старту іншим).
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ