trang chủ / bài tập / learnbex

Học Máy (Bronze)

Đề bài

Mô tả

N con bò hiện có, mỗi con có cân nặng phân biệt và được gán nhãn có đốm (S) hoặc không có đốm (NS). Cho một dãy con bò mới với cân nặng từ A đến B (bao gồm cả hai đầu), hãy phân loại từng con bò mới bằng thuật toán k-nearest neighbor với k=1:

  • Tìm con bò hiện có có cân nặng gần nhất với con bò mới.
  • Nếu có một con duy nhất gần nhất: phân loại theo nhãn của con đó.
  • Nếu có hai con cùng khoảng cách gần nhất: phân loại là có đốm nếu ít nhất một trong hai có đốm.

Đếm số con bò mới (với cân nặng nguyên trong [A,B]) được phân loại là có đốm.

Dữ liệu vào

Dòng đầu chứa ba số nguyên N, A, B.

  • N dòng tiếp theo, mỗi dòng có dạng S W hoặc NS W — nhãn và cân nặng của con bò thứ i.

Dữ liệu ra

Một số nguyên duy nhất — số con bò mới được phân loại là có đốm.

Ràng buộc

  • 1N50000
  • 1AB109
  • 1Wi109, các cân nặng hiện có là phân biệt

Ví dụ

Input Output Giải thích
3 1 10
S 10
NS 4
S 1
6 Con bò mới cân nặng 1–2 gần con bò có đốm (cân 1) nhất → có đốm. Cân 3–6 gần con bò NS (cân 4) → không. Cân 7 là điểm giữa cân 4 và 10 → có đốm (vì cân 10 có đốm). Cân 8–10 gần con bò có đốm (cân 10) → có đốm. Tổng: {1,2,7,8,9,10} = 6 con.
2 1 10
S 2
NS 8
5 Cân 1–4 gần cân 2 (có đốm) → có đốm. Cân 5 là điểm giữa cân 2 và 8 → có đốm (vì cân 2 có đốm). Cân 6–10 gần cân 8 (không đốm) → không. Tổng: {1,2,3,4,5} = 5 con.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0