tiện thể tìm hộ e lỗi sai bài này được k ạ?
đề bài: (DEAD LINK) https://www.spoj.com/ITPTIT/problems/ITP0183B/
code c e:http://codepad.org/kniVt6ct
e cảm ơn trước…
Cách khắc phục Segmentation Fault trong "Bi và tàu hoả" trên SPOJ PTIT
Về lỗi Segmentation Fault
Bạn nên tránh sử dụng lệnh có biến n chưa xác định khi khai báo mảng.
int a[n][4];
Thay vào đó nên sử dụng mảng động, tự cấp phát tự thu hồi.
int **a = NULL;
a = new int*[n];
for (int i = 0; i < n; i++) {
a[i] = new int[4];
}
for (int i = 0; i < n; i++) {
delete[] a[i];
}
delete[] a;
a = NULL;
Về bài tập:
Xét trục toạ độ Ox tâm O tại điểm 1, vector i có độ dài 1 và hướng từ điểm 1 tới điểm L (đặt cho nó có chút toán học tí )
Số đèn lồng từ điểm 1 tới điểm n, tạm gọi là d(n)
- d(n) = [n/v] + 1, khi v ∣ n (n chia hết cho v)
- d(n) = [n/v], khi v ⫮ n (n không chia hết cho v)
- ([a] là phần nguyên của a)
Số đèn lồng từ điểm m tới điểm n, kí hiệu d(n, m), m <= n
- d(n, m) = d(n) - d(m), khi v ⫮ m
- d(n, m) = d(n) - d(m) + 1, khi v ∣ m
Số đèn lồng từ điểm 1 tới điểm L, bị chắn bởi đoạn [m, n], với m <= n:
- d(L) - d(n, m)
Không biết lúc triển khai ra công thức tổng quát có giống bạn không, vì cần tới 8 trường hợp để xem xét (2 * 2 * 2, 2 lần cho v ∣ m, 2 lần cho v ∣ n, 2 lần cho v ∣ L)
Note: không nên đặt biến l (L viết thường), vì dễ nhầm giữa giữa kí tự l, kí tự | (vertical bar) và số 1.
Mảng nhỏ thì vẫn dùng VLA được (trong C)
cảm ơn bác nhé :v chứ e làm thiếu trường hợp -_- đầu óc chán quá
không hiểu sao, mình không thể tiếp xúc được syntax của C++, nhìn là ngán rồi, mình chỉ thích C thôi, toàn malloc, calloc, free…
“Chưa thấy (Ruby on) Rails (magic) / JSP (config) chưa đổ lệ”
STL chịu khó cũng học được, nó ít có magic. Chỉ xin đừng ham hố cái template (very deep) quá, nó là Turing-complete đấy