Hỏi hướng làm cho tối ưu


Cho em xin hướng code sao cho tối ưu ạ chứ làm kiểu trâu trâu mệt quá

Xét vị trí hàng và cột. Gợi ý: áp dụng tính chẵn lẻ.

3 Likes

Nhưng nó có những trường hợp ko tuân theo chẵn lẻ ấy ạ(càng vào bên trong càng nhiều hơn ấy ạ)

Dữ liệu cố định thì cứ làm cái mảng (đánh dấu) cố định mà “phang” thôi. Muahahaha.

Như @noname00 gợi ý, liên quan đến chẵn lẻ đấy. Nhưng không đơn giản là chẵn - đen, lẻ - trắng đâu. Cần thêm điều kiện liên hệ giữa cả dòng và cột.

3 Likes

để vẽ hình ra cho dễ thấy :V :V

giá trị r, c từ 1 tới 15 ko đối xứng cho lắm:

-8 cho nó thành đối xứng -7 tới 7:

số âm xấu quá, lấy trị tuyệt đối cho nó ra số dương hết:


màu vẫn đúng vì nó đối xứng qua tâm (0,0)

giờ chỉ còn xét góc tư toàn số dương này
5

tính từ tâm (0,0) thì khoảng cách của mỗi vòng là 0, 1, 2, 3, …, 7, nếu (r,c) chuyển sang số như thế này hết thì khỏe:
6
ơ mà may mắn lấy max(r,c) là ra đúng như trên luôn :V :V

vậy thuật toán “tối ưu” là

  • chuyển (r,c) sang (r1, c1) = (r-8, c-8)
  • lấy trị tuyệt đối: (r2, c2) = (abs(r1), abs(c1))
  • lấy max: v = max(r2, c2)
  • nếu v chẵn thì in ra “white” còn v lẻ thì in ra “black”
5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?