IOI 2013 - Art Class

Xem PDF



Dạng bài
Ngôn ngữ cho phép
C, C++
Điểm: 2300 (p) Thời gian: 5.0s Bộ nhớ: 64M Input: bàn phím Output: màn hình

Bạn sắp thi môn Lịch sử Nghệ thuật, nhưng ở trường bạn quan tâm đến tin học hơn các môn nghệ thuật! Bạn cần viết một chương trình để làm bài cho mình.

Bài kiểm tra gồm một số bức tranh. Mỗi bức thuộc một trong bốn kiểu, được đánh số \(1\), \(2\), \(3\), \(4\).

Kiểu 1 gồm các bức tranh trừu tượng. Ví dụ:




Kiểu 2 gồm các bức tranh ấn tượng về phong cảnh. Ví dụ:




Kiểu 3 gồm các bức tranh biểu hiện hành động. Ví dụ:




Kiểu 4 gồm các bức tranh các dải màu sắc. Ví dụ:




Nhiệm vụ của bạn là xác định kiểu của một bức tranh từ ảnh số của bức tranh đó.

Ban giám khảo IOI đã thu thập nhiều ảnh cho mỗi kiểu. Chín ảnh của mỗi kiểu được chọn ngẫu nhiên và cung cấp trên máy tính cùng tài liệu bài toán, để bạn xem xét bằng tay và thử nghiệm. Những ảnh còn lại được dùng khi chấm chương trình của bạn.

Cài đặt

Bạn cần nộp một tệp cài đặt hàm C/C++ sau và phải dùng #include "artclass.h":

C++
int style(int H, int W,
        int R[500][500], int G[500][500], int B[500][500]);

Dữ liệu vào

Ảnh là một lưới \(H \times W\) điểm ảnh. H là số hàng, W là số cột. Các hàng được đánh số từ \(0\) đến \(H-1\) từ trên xuống dưới; các cột được đánh số từ \(0\) đến \(W-1\) từ trái sang phải.

Các mảng hai chiều R, G, B mô tả lần lượt lượng màu đỏ, xanh lá cây và xanh da trời của mỗi điểm ảnh. Phần dữ liệu được sử dụng của mỗi mảng có kích thước \(H \times W\). Các phần tử R[i][j], G[i][j], B[i][j] ứng với điểm ảnh tại hàng \(i\), cột \(j\), và là các số nguyên từ \(0\) đến \(255\), bao gồm cả hai đầu mút. Giá trị \(0\) nghĩa là không có thành phần màu đó; \(255\) nghĩa là lượng tối đa.

Dữ liệu ra

Hàm style trả về kiểu của bức ảnh: một trong các số nguyên \(1\), \(2\), \(3\), \(4\) theo mô tả trên.

Ràng buộc

  • Giới hạn thời gian: 5 giây.
  • Giới hạn bộ nhớ: 64 MiB.
  • \(100 \le H \le 500\).
  • \(100 \le W \le 500\).
  • \(0 \le R[i][j], G[i][j], B[i][j] \le 255\) với \(0 \le i < H\), \(0 \le j < W\).

Phân nhóm

Bài này không có nhóm con. Điểm được tính theo tỷ lệ ảnh mà chương trình phân loại đúng. Gọi \(P\) là phần trăm số ảnh được phân loại đúng, với \(0 \le P \le 100\). Điểm là:

\[ \operatorname{score}(P)= \begin{cases} 0, & 0 \le P < 25,\\ \left\lfloor \dfrac{10(P-25)}{25} \right\rfloor, & 25 \le P < 50,\\ \left\lfloor 10 + \dfrac{90(P-50)}{40} \right\rfloor, & 50 \le P < 90,\\ 100, & 90 \le P \le 100. \end{cases} \]

Như vậy, khi \(25 \le P < 50\), điểm tăng tuyến tính từ \(0\) đến \(10\); khi \(50 \le P < 90\), điểm tăng tuyến tính từ \(10\) đến \(100\). Trong hai khoảng này, kết quả được làm tròn xuống số nguyên gần nhất.

Thực nghiệm

Trình chấm mẫu đọc ảnh từ tệp artclass.jpg. Tệp này bắt buộc phải chứa một ảnh định dạng JPEG.

Bạn được phép dùng mọi ứng dụng xử lý đồ họa trên máy tính để tìm hiểu các bức ảnh, nhưng không bắt buộc phải dùng chúng để giải bài. Các ứng dụng này nằm trong menu Applications > Graphics.

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: