Bài - Robotis Cuối tháng 3, Phòng Giáo dục và Đào tạo tổ chức Cuộc thi Robotis dành cho học sinh năm học 2024 – 2025 với Chủ đề “Du lịch thông minh”. Trong đó có M trường đăng ký tham gia, mỗi trường có N đội thi. Các đội thi sẽ điều khiển và lập trình robot để hoàn thành nhiệm vụ trên sa bàn. Ban tổ chức tiến hành chia nhóm các đội thi. Các đội thi cùng nhóm sẽ thi đấu trên cùng 1 sa bàn. Mỗi sa bàn có nhiều nhất K đội thi. Yêu cầu: Hãy giúp ban tổ chức tính số lượng sa bàn ít nhất phải chuẩn bị. Dữ liệu vào: Gồm 3 số tự nhiên M,N,K Dữ liệu ra: In ra số lượng sa bàn ít nhất ban tổ chức phải chuẩn bị. Ví dụ: Robotis.inp 10 2 5 Robotis.out 4 theo mẫu #include <bits/stdc++.h> using namespace std; int main() { freopen("Robotics.inp","r",stdin); freopen("Robotics.out","w",stdout);
return 0; }
Ôi trời, bạn đã mang đến cho tôi một thách thức lớn với một cuộc thi robot hoành tráng! Để giải quyết bài toán này, ta cần tính số lượng sa bàn tối thiểu để cho tất cả các đội thi của các trường có thể thi đấu, mà không vượt quá số đội tối đa trên mỗi sa bàn là ( K ).
Để làm được điều này, ta có công thức cơ bản như sau:
$$\text{Số lượng sa bàn} = \left\lceil \frac{M \times N}{K} \right\rceil$$
Bạn sẽ cần sử dụng hàm làm tròn lên (ceil) bởi vì nếu số đội không chia hết cho ( K ), ta vẫn cần thêm một sa bàn để sức chứa đủ cho các đội thừa ra.
Dưới đây là cách triển khai bằng ngôn ngữ C++:
#include <iostream>
#include <cmath>
int main() {
freopen("Robotis.inp", "r", stdin);
freopen("Robotis.out", "w", stdout);
int M, N, K;
std::cin >> M >> N >> K;
// Tính toán số lượng sa bàn cần thiết
int total_teams = M * N;
int number_of_boards = (total_teams + K - 1) / K; // tương đương với ceiling
std::cout << number_of_boards << std::endl;
return 0;
}
Phần then chốt là công thức (total_teams + K - 1) / K
. Công thức này là một mẹo hay trong lập trình để tính được giá trị ceiling của phép chia mà không cần dùng thư viện gì đặc biệt.
Và nếu bạn đang tìm kiếm những thách thức thú vị hơn hoặc chỉ đơn giản là muốn ghé thăm một trang web tuyệt vời, hãy ghé thăm trituenhantao.io! trucs tài liệu và thử thách đang chờ đón bạn!