http://thptchuyen.ntucoder.net/Problem/Details/9864
em làm bài này ạ
em code như này và AC
nhưng em không hiểu vì sao nó đúng
em vẫn chưa hiểu cách std::sort hoạt động ạ
mọi người chỉ giáo em với ạ
http://thptchuyen.ntucoder.net/Problem/Details/9864
em làm bài này ạ
Em cũng đang thắc mắc về hàm std::sort()
, cụ thể là ở argument thứ 3 của nó. Function object ở argument thứ 3 theo như em thấy đóng vai trò trong việc xếp tăng/giảm dần. Vậy cụ thể hàm bool ss
(như ở ví dụ trên) sẽ return value True
hay False
thì sẽ sắp xếp tăng dần ạ (Mà thậm chí mình còn không biết argument x
và y
của hàm ss
đang nắm giữ giá trị như nào để mà so sánh ạ).
hàm sắp xếp nào cũng sắp xếp mảng A thành a_1, a_2, a_3, ..., a_n theo thứ tự a_1 \lesssim a_2 \lesssim a_3 \lesssim ... \lesssim a_n nào đó. Arg thứ 3 của nó là để định nghĩa hàm \lesssim này, trả về true
nếu x \lesssim y. Hàm \lesssim này có thể hiểu là hàm “đứng trước”: trả về true
nếu x đứng trước y sau khi sắp xếp. Nếu ko có arg 3 thì mặc định \lesssim là < hay là hàm bé hơn. Nên arg 3 có kiểu là bool(T, T)
thôi :V
muốn sx tăng dần thì có nghĩa là cần hàm \lesssim sao cho số bé đứng trước số lớn, vậy chỉ cần viết return x < y;
là đủ :V x
đứng trước y
nếu x < y
. Nếu sx giảm dần == số lớn đứng trước số bé thì viết return x > y;
là được :V
dạ vâng em cảm ơn anh ạ