cái getVal của anh để l==r thì hóa ra nó là phải duyệt đến tất cả các phần tử rồi mới trả lại max phải không ạ, em nghĩ anh nên để trường hợp đoạn l,r nằm trong đoạn u,v thì sẽ tối ưu hơn không biết có hợp lý k ạ ?
cái phần cập nhật đoạn cập nhật theo cách video làm bài sẽ quá thời gian nhá cách đấy chỉ dùng cập nhật 1 phần tử thôi còn muốn cập nhật như thế thì phải dùng cái cập nhật lười trên vnoi có đó
@@thisisbac9091 a cho em hỏi về phần trace khi sử dụng dijkstra heap với ạ, cụ thể là bài này: oj.vnoi.info/problem/floyd Em biết 1 bài truy vấn như này nên xài floyd nhma em muốn train dijkstra có điều e chưa fix đc bug TT. Code em: #include using namespace std; const int N=1e7; int n,m,k; vector g[N]; int d[N],father[N]; void dijkstra(int st) { priority_queue pq; for (int i=1; idV+dU) { d[v]=dV+dU; father[v]=u; pq.push({dV,v}); } } } } int main() { cin >> n >> m >> k; for (int i=1; i>u>>v>>c; g[u].push_back({c,v}); g[v].push_back({c,u}); } for (int i=1; i>q>>u>>v; if (q==0) { dijkstra(u); cout
Đi thi icpc thì có cần phải nắm thêm các phần lý thuyết số nâng cao như sqrt decomposition hay thặng dư trung hoa k v a
Anh làm thêm về cây phân đoạn với ạ, như cách tối ưu, giảm thời gian chương trình, một số kỹ thuật khác...
Ok nhé. Nếu a có thời gian.
anh ơi cho em hỏi là làm sao để chia được màn hình codeblocks thành 3 cửa sổ như kia ạ
làm thế nào để mình liên hệ được với bạn bắc nhỉ? Mình có việc muốn nhờ
@@THUONGTHCH mình thấy email liên hệ của bạn rồi nha
Bác nào thấy cái này khó hiểu thì nên luyện binary search trước rồi sẽ thông hiểu được bài này
Mình dùng segment Tree để làm đồ án quản lý sản phẩm được kh a
ngáo đồ à
cái getVal của anh để l==r thì hóa ra nó là phải duyệt đến tất cả các phần tử rồi mới trả lại max phải không ạ, em nghĩ anh nên để trường hợp đoạn l,r nằm trong đoạn u,v thì sẽ tối ưu hơn không biết có hợp lý k ạ ?
tôi cx nghĩ v á phải sửa thành if (u
@@vquoc25 nếu thế thì thành dùng lazy rồi ông ạ
cái phần cập nhật đoạn cập nhật theo cách video làm bài sẽ quá thời gian nhá cách đấy chỉ dùng cập nhật 1 phần tử thôi còn muốn cập nhật như thế thì phải dùng cái cập nhật lười trên vnoi có đó
Độ phức tạp mấy vậy anh
quá hay , quá dễ hiểu
Anh dạy hay vaiii
anh ơi , em nghĩ sau mỗi đoạn video anh nên để code tham khảo cho mọi người ạ
A nghĩ là không e ạ. A nghĩ mọi người nên tự code để hiểu thay vì ctrl + c em ạ.
Anh trai chỉ em cách comment // bằng phím tắt được với ạ. Em cảm ơn anh ạ
ctrl + shift + c nhes ban
@@fumisticchannel1465 Oh cảm ơn thể bạn cho mình huỷ cách huỷ cmt luôn vs ạ
@@fruith_ ctrl shift X hoac C
@@phattrinht thank you nha pro
bài sau a làm 1 video giải bài tập về dạng này đi ạ
ok nha
@@thisisbac9091 www.spoj.com/problems/THRBL/
tiện chữa giùm e bài này :
Id luôn là 1 hả anh
Hi :)
vẽ sai r
:(
làm lú ghê
tiếng nhỏ quá a ưi T_T
a có thể cho e xin fb a để tiện trao đổi không ạ :'>
anh không dùng fb, có gì em cứ comment trực tiếp ở đây hoặc email cho anh nhé
@@thisisbac9091 a cho em hỏi về phần trace khi sử dụng dijkstra heap với ạ, cụ thể là bài này: oj.vnoi.info/problem/floyd
Em biết 1 bài truy vấn như này nên xài floyd nhma em muốn train dijkstra có điều e chưa fix đc bug TT.
Code em:
#include
using namespace std;
const int N=1e7;
int n,m,k;
vector g[N];
int d[N],father[N];
void dijkstra(int st) {
priority_queue pq;
for (int i=1; idV+dU) {
d[v]=dV+dU;
father[v]=u;
pq.push({dV,v});
}
}
}
}
int main() {
cin >> n >> m >> k;
for (int i=1; i>u>>v>>c;
g[u].push_back({c,v});
g[v].push_back({c,u});
}
for (int i=1; i>q>>u>>v;
if (q==0) {
dijkstra(u);
cout
Video tới anh sẽ nói rõ về cái thuật dijkstra dùng heap này nhé
@@18-tranhoangkhiem7 E xem video này để tìm hiểu thêm nhé: th-cam.com/video/a-mxXB3Acik/w-d-xo.html
ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ