VM 15 Bài 07 - Xác định hình

View as PDF

Submit solution

Points: 2.00 (partial)
Time limit: 4.5s
Memory limit: 256M
Input: stdin
Output: stdout

Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Bé năm nay mới ~1~ tuổi, nhưng đã có thể nhận biết được hình tròn, hình vuông và hình tam giác. Bạn có làm được như bé không?

Bạn được cho ~1~ số bức ảnh cấp độ xám (grayscale) của ~1~ trong ~3~ loại hình: hình tròn, hình vuông và hình tam giác.

  • Mỗi bức ảnh có kích thước ~100 \times 100~ pixel và được biểu diễn bởi ~1~ ma trận kích thước ~100 \times 100~.
  • Pixel ~(i~, ~j)~ nhận giá trị trong khoảng ~[0~, ~255]~, trong đó ~0~ ứng với màu đen, ~255~ ứng với màu trắng, và các giá trị càng gần ~0~ thì càng đen.

Bài này gồm có ~50~ test:

  • Bạn được down về ~10~ test đầu ở đây.
  • ~10~ test tiếp theo không có hình tròn.
  • ~10~ test tiếp theo không có hình vuông.
  • ~10~ test tiếp theo không có hình tam giác.
  • ~10~ test cuối cùng có đủ cả ~3~ loại hình.

Dưới đây là thang sáng tối của điểm ảnh. Phần bên trong của hình cần nhận diện sẽ có màu sáng hơn (giá trị điểm ảnh lớn hơn) so với phần bên ngoài của hình. Tuy nhiên các ảnh sẽ bị làm nhiễu đi bởi các điểm ảnh có giá trị bất kì (tải các test ví dụ về để xem chi tiết).

image

Input

Dòng đầu chứa số nguyên ~T~:

  • Nếu ~T = 0~, trong test không có hình tròn.
  • Nếu ~T = 1~, trong test không có hình vuông.
  • Nếu ~T = 2~, trong test không có hình tam giác.
  • Nếu ~T = -1~, trong test có đủ cả ~3~ loại hình.

Dòng thứ ~2~ chứa số nguyên dương ~S~ - số hình trong file input ~(S < 10)~. Tiếp theo là mô tả của ~S~ hình, mỗi mô tả gồm ~101~ dòng:

  • ~100~ dòng đầu, mỗi dòng chứa đúng ~100~ số nguyên trong khoảng ~[0~, ~255]~ mô tả bức ảnh.
  • Tiếp theo là ~1~ dòng trống.

Output

Với mỗi test, in ra đúng ~S~ dòng, dòng thứ ~i~ là:

  • ~0~ nếu hình tương ứng là hình tròn
  • ~1~ nếu hình tương ứng là hình vuông
  • ~2~ nếu hình tương ứng là hình tam giác

Giới hạn

  • Điểm của bạn sẽ bằng % test mà bạn giải đúng.

Comments

Please read the guidelines before commenting.



  • 2
    vrski39  commented on Dec. 22, 2024, 2:29 p.m. edited

    hướng làm bài này khá cơ bản:

    sử dụng một hàm smooth để xoá phần noise đi

    threshold để tìm vật thể

    xác định được contour của vật

    dựa vào đó để đánh giá xem đó là hình nào

    có thể dựa thêm vào số nguyên T trong đề để loại trừ kết quả / phán đoán thêm

    sau đó căn chỉnh các tham số của hàm đánh giá (khá giống đoán mò :v )