Nguồn: Big-O
VNG đang phát triển một tính năng mới mang tên Custom Pet cho tựa game Play Together, cho phép người chơi tạo thú cưng ảo trong trò chơi dựa trên ảnh chụp thú cưng ngoài đời thực của mình. Tính năng này được kỳ vọng sẽ mang lại trải nghiệm chơi game chân thực và đáng yêu hơn.
Để nâng cao độ chính xác nhận diện động vật cho tính năng Custom Pet, đội ngũ phát triển game Play Together cần một tập dữ liệu hình ảnh thú cưng rất lớn và đa dạng. Nhằm mở rộng tập dữ liệu, đội ngũ quyết định áp dụng kỹ thuật Image Augmentation (tăng cường dữ liệu hình ảnh) — một kỹ thuật trong học máy giúp cải thiện mô hình bằng cách tạo thêm dữ liệu huấn luyện từ dữ liệu gốc thông qua các phép biến đổi hình ảnh như lật, xoay, cắt xén,...
Biết rằng, một bức ảnh được biểu diễn bằng một mảng hai chiều chứa các giá trị cường độ điểm ảnh (pixel).
Cho một bức ảnh trong tập dữ liệu là một mảng hai chiều vuông gồm N dòng và N cột. Là một lập trình viên trong đội ngũ phát triển tính năng Custom Pet, hãy viết chương trình thực hiện thao tác Lật ngang ảnh sau đó xoay ảnh 90 độ theo chiều kim đồng hồ để giúp đội ngũ gia tăng độ đa dạng cho tập dữ liệu.
Bức ảnh ban đầu:
Bức ảnh ban đầu sau khi lật ngang:
Bức ảnh ban đầu sau khi xoay ảnh 90 độ theo chiều kim đồng hồ:
Bức ảnh ban đầu sau khi lật ngang và xoay ảnh 90 độ theo chiều kim đồng hồ:
Yêu cầu: Thực hiện các thao tác trên tại chỗ (in-place), không khởi tạo thêm mảng mới ngoại trừ mảng lưu dữ liệu đầu vào đã đọc.
Đầu vào:
N dòng tiếp theo, mỗi dòng gồm N số nguyên có giá trị trong đoạn [0,255] biểu diễn cường độ của các pixel.Đầu ra:
N dòng, mỗi dòng gồm N số nguyên là cường độ của các pixel sau khi thực hiện thao tác Lật ngang ảnh sau đó xoay ảnh 90 độ theo chiều kim đồng hồ.Ví dụ 1:
Đầu vào:
5
1 1 1 0 0
1 0 0 0 0
1 1 1 0 0
1 0 0 0 0
1 0 0 0 0
Đầu ra:
0 0 0 0 0
0 0 0 0 0
0 0 1 0 1
0 0 1 0 1
1 1 1 1 1