trần minh hoàng 2021-10-02 4:10:33
mọi người cho em hỏi câu này với ạ. em cảm ơn!!
dạ em cảm dạ em cảm ơn ạ em sẽ tim hiểu thêm
Khi dùng memset thì phải hiểu bản chất vấn đề, nếu không thì chỉ nên memset giá trị 0 hoặc cùng lằm lá giá trị -1 thôi. Nếu không hiểu rõ cách hoạt động của bộ nhớ thì nên dùng fill_n thay thế.
mình hiểu r cảm ơn b
memset dùng để set từng byte của một biến.
sizeof thì dùng để đếm số byte của biến đó
1 byte có thể mô tả bằng 2 số hex
Một số int thì có 4 byte
Vì dữ liệu int nhận bit cuối làm bit dấu nên cần tránh bit này ra khi muốn set một giá trị thành một giá trị vô cùng
memset(dp, 0x7f, sizeof dp);
tương đương với
for(int i = 0; i<M; i++) dp[i] = 0x7f7f7f7f;
for(int i = 0; i<M; i++) dp[i] = 2139062143;
cho mình hỏi cái memset đó làm gì v
mình cảm ơn bạn nhiều!!
Bài này bạn dùng quy hoạch động
int dp[M]; memset(dp, 0x7f, sizeof dp); // 0x7f7f7f7f = 2139062143 dp[0] = 0; for(int i = 0; i <M; i++){ for(int j = 1; j<=n; j++){ if(i + a[j] > M) break; dp[i + a[j]] = min(dp[i + a[j]], dp[i] + 1); } } cout << dp[M];
Tổng cộng 7 trả lời
dạ em cảm dạ em cảm ơn ạ em sẽ tim hiểu thêm
Khi dùng memset thì phải hiểu bản chất vấn đề, nếu không thì chỉ nên memset giá trị hoặc cùng lằm lá giá trị thôi. Nếu không hiểu rõ cách hoạt động của bộ nhớ thì nên dùng fill_n thay thế.
mình hiểu r cảm ơn b
memset dùng để set từng byte của một biến.
sizeof thì dùng để đếm số byte của biến đó
1 byte có thể mô tả bằng 2 số hex
Một số int thì có 4 byte
Vì dữ liệu int nhận bit cuối làm bit dấu nên cần tránh bit này ra khi muốn set một giá trị thành một giá trị vô cùng
tương đương với
tương đương với
cho mình hỏi cái memset đó làm gì v
mình cảm ơn bạn nhiều!!
Bài này bạn dùng quy hoạch động