JavaRush /Blog Java /Random-VI /Các vấn đề về thuật toán
Joysi
Mức độ

Các vấn đề về thuật toán

Xuất bản trong nhóm
Điểm mạnh của JavaRush là lượng thực hành phong phú, giúp củng cố kiến ​​thức trong bài giảng rất nhiều. Ở đây, 95% nhiệm vụ tập trung vào thực hành viết chương trình ứng dụng hoặc máy chủ. Thật tuyệt vời khi thực hành các tài liệu được trình bày trong bài giảng (bộ sưu tập, tổng quát, mảng, đa luồng, v.v.) hoặc dần dần tạo ra và tái cấu trúc các vấn đề với nhiều lớp và sự tương tác của chúng (những lớp lớn). Có những vấn đề về thuật toán như một luồng gió mới (chắc ai cũng nhớ phần thưởng cuối cùng của cấp 20 là xây dựng danh sách cây nhị phân), nhưng số lượng của chúng không nhiều. Điều này có thể hiểu được, khóa học được dành cho thực hành ứng dụng chứ không phải thuật toán (vốn đòi hỏi nhiều lý thuyết về điều khiển học và toán học). Đối với những người có phần giống tôi về việc đôi khi hơi mất tập trung và thực hành nhiều kỹ năng toán học hơn trong lập trình, tôi khuyên bạn nên sử dụng http://codeforces.com/. Các vấn đề có thể được giải quyết (trong số các ngôn ngữ lập trình khác) trong Java 7/8. Một loạt các vấn đề (ngoài chúng, các cuộc thi cũng được tổ chức) có sẵn tại http://codeforces.com/problemset. Ngoài họ còn có các cuộc thi, v.v. 100% đưa ra quyết định trong một tệp java bằng cách sử dụng gói mặc định (nghĩa là không có gói nào được chỉ định trong tệp java) và điểm vào là public static void main(String[] args). Tôi chưa thử các lựa chọn khác để gửi giải pháp. Tôi sẽ đưa ra một ví dụ về vấn đề đơn giản nhất (http://codeforces.com/problemset/problem/1/A) kèm theo lời giải (coi như một ví dụ thử nghiệm), để các bạn có thể sử dụng làm chỗ trống khi giải các bài toán khác : import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать or дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади. Входные данные В первой строке записано три целых натуральных числа 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); } } Sau khi tạo chương trình và tự kiểm tra, hãy tải tệp lên trang web, quá trình xác minh sẽ sớm bắt đầu và bạn có thể xem quá trình của nó. Ngoài ra, bạn có thể xem dữ liệu thử nghiệm trong quá trình xác minh và sử dụng dữ liệu đó để sửa chương trình nếu một trong các thử nghiệm không thành công. Tái bút Nếu chính quyền coi đây là quảng cáo cho tài nguyên của bên thứ ba, bạn có thể xóa nó. Mặc dù cá nhân tôi nghĩ rằng việc tập luyện bổ sung cho não về mặt thuật toán sẽ không gây hại gì. PSS Nếu có các tài nguyên tương tự khác, hãy viết nhận xét (tốt nhất là bằng các tài liệu mở rộng - ưu, nhược điểm và ví dụ về các vấn đề kiểm tra đã được giải quyết để những người khác có một khởi đầu dễ dàng).
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION