30/09/2018, 16:25
[Hỏi] Một bài toán về hình vuông (ma trận n*n)
Mọi người giúp em bài này với ạ, cho em xin ý tưởng
Cho một bảng vuông N*N biểu diễn bởi các số 0 và 1, hãy đếm các số 1 cô độc.
Định nghĩa : số một cô độc là số 1 mà các ô kề bên nó không tính đường chéo đều
mang giá trị là 0.
Dữ liệu vào : SQUARE.INP
Dòng đầu là số N chỉ kích thước bảng vuông (1<N<=1000).
N dòng sau mỗi dòng là N số 0,1 cách nhau ít nhất một khoảng trắng.
Dữ liệu ra: SQUARE.OUT
Một số nguyên duy nhất là số ô 1 đơn độc có trong bước.
Ví dụ
SQUARE.INP SQUARE.OUT
3
1 0 1
0 0 1
0 0 0
SQUARE.OUT
1
Giải thích: số 1 đầu tiên là số 1 cô độc duy nhất.
Bài liên quan
tìm hiểu cách tính tổng 8 ô xug quanh nhé :))
Đó là cái vấn đề của em.
cho nó cái biên có các giá trị = 0
Đây là code check của em, buồn là kết quả ra chẳng giống cái đề
bạn tạo ma trận bắt đầu từ cột 1 dòng 1 thôi, còn dòng 0 cột 0 và bao viền thì bạn cho nó có giá trị 0
Em cần duyệt luôn các ô xung quanh để làm một bài khác nữa: tính tổng các ô xung quanh.
Mà chẳng lẽ mỗi điều kiện phải dùng mỗi cái if hả anh.
Để duyệt 1 Ô ở vị trị bất kì, em cần duyệt 8 ô xung quanh thì em phải cộng 1 cặp
dx,dy
cho tất cả 8 ô:Như minh họa phía dưới thì
dx,dy
luôn không đổi/(y-1,x-1) | (y-1,x) | (y-1,x+1)
(y,x-1) |
(y,x)
| (y,x+1)(y+1,x-1) | (y+1,x)| (y+1,x+1)
Do đó ta có thể lưu:
như vậy em cần có cặp dx,dy tương ứng 8 ô xung quanh cần duyệt
Cho mình ké với? mình cũng đang giải hệ pt 3 ẩn đầy đủ theo định thức Cramer.
cũng giải theo matrix n*n và tìm nghiệm x,y,z nhưng chưa đc.
Công thức tính định thức của bạn sai rồi.
Bạn nên viết 1 hàm cho matran 3x3
Det3x3 = a1b2c3+ a2b3c1+ a3b1c2
-( a3b2c1+ a1b3c2+a2b1c3)
Cách nhớ của mình là a b c không đổi,
Cộng xuôi 1,2,3
Trừ 3 2 1
Hệ số tăng dần nếu > 3-> 1