#2.Bài Toán Cái Túi Quy Hoạch Động| Bài Toán Xếp Balo ( 01 Knapsack)

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ธ.ค. 2024

ความคิดเห็น •

  • @Tuano-et5el
    @Tuano-et5el 2 ปีที่แล้ว +49

    ở phần Hướng dẫn thì tại dp[3][5], dp[4][5],dp[3][6] phải bằng 7 chứ

  • @topnewapps6169
    @topnewapps6169 ปีที่แล้ว +2

    Con tim e đã tan chảy khi được nghe bài giảng của a mỗi ngày❤

  • @Skidjcjxj
    @Skidjcjxj 4 หลายเดือนก่อน +9

    giải thích chi tiết cho những ai chưa hiểu qhd theo ý hiểu của mình dp[i][j] ở đây sẽ là giá trị tối ưu của cái túi tính đến đồ vật thứ i và khối lương cái túi là j, trong công thức dp[i][j]=dp[i-1][j] ở đây nghĩa là ta sẽ cập nhập cái túi hiện tại bằng việc lấy kết quả từ cái túi ở đồ vật đằng trước đã chọn tức là độ vật thứ i-1 còn công thức dp[i][j]=max(dp[i][j],dp[i-1][j-w[i]]+v[i]) tức là cái túi hiện tại sẽ so sánh với cái túi khi ta bỏ đi một khối lương là w[i[ để lần về lời là cái túi có khối lương j-w[i] đã giải được và sẽ lấy kết quả ở ô đã giải được đó cộng thêm giá trị v[i] và sẽ so sánh 2 kết quả là giá trị cái túi hiện tại và sau khi thêm 1 đồ vật vào và nó sẽ lấy max của 1 trong 2 giá trị, giả trị nào tối ưu hơn thì sẽ lấy và cứ làm như v đến hết kq sẽ nằm ở ô cuối cùng của bàng phương án là dp[n][S] cách làm này là sử dụng mảng 2 chiều để lưu phương án,ae muốn ngắn hơn thì cố nghĩ cách sử dụng mảng 1 chiều

  • @lds8455
    @lds8455 2 ปีที่แล้ว +2

    anh giảng rất dễ hiểu ạ, em xem nhiều bên rồi thấy anh giảng chậm tận tâm

    • @28tech_
      @28tech_  2 ปีที่แล้ว +1

      Cảm ơn em :D

  • @MinhAnh-gd8hy
    @MinhAnh-gd8hy 2 ปีที่แล้ว +2

    yêu anh nhiều lắm luôn á🥰🥰
    anh ra nhiều video nữa đi anh

    • @28tech_
      @28tech_  2 ปีที่แล้ว +3

      uh a đang chuyển nơi làm việc nên chưa làm được nhiều. Con gái thì chấp nhận nhé, con trai thì anh né trước.

    • @MinhAnh-gd8hy
      @MinhAnh-gd8hy 2 ปีที่แล้ว

      @@28tech_ hihhiihi anh ra tiếp nhá anh🤗🤗
      em chuẩn bị thi icpc asia 2022 nên cần học tập ở anh nhiều ạ😇😇

    • @QuyVietBui
      @QuyVietBui ปีที่แล้ว

      còn thi năm sau không bạn

  • @itnhalam
    @itnhalam 2 ปีที่แล้ว +1

    anh mà ra khóa quy hoạch động thì em sẽ là người đăng kí đầu tiên :D

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      Hehe cảm ơn em

  • @quangdungle731
    @quangdungle731 ปีที่แล้ว +3

    Dạ anh ơi cho em hỏi ở phút 14:38 ở 2 cột 5 và 6 thì mình phải điền vào số 7 mới đúng phải không anh?

  • @HienNguyen-op4mo
    @HienNguyen-op4mo ปีที่แล้ว

    Bài giảng hay quá trời hay anh ơi, học cuốn mà dễ hiểu

    • @28tech_
      @28tech_  ปีที่แล้ว

      Cảm ơn em

  • @06.chungvanduya13
    @06.chungvanduya13 2 ปีที่แล้ว +2

    Mong anh làm thêm nhiều video về phần này nx nha a💪💪

    • @28tech_
      @28tech_  2 ปีที่แล้ว +2

      Ok thank em đã ủng hộ, chia sẻ cho a đi

  • @tinhNguyen-jx4pp
    @tinhNguyen-jx4pp 8 หลายเดือนก่อน

    bài giảng hay lắm ạ

    • @28tech_
      @28tech_  8 หลายเดือนก่อน

      😌🤩🤩🤩 thank em

  • @ABCb33
    @ABCb33 ปีที่แล้ว

    tuyệt vời quá anh ơi

  • @NamTranVan-dx9gn
    @NamTranVan-dx9gn 17 วันที่ผ่านมา

    xem thỉ hiểu mà sao tìm được công thức hay vậy ta +1 respect hay vô cùng mn nên xem để biết nhé

    • @28tech_
      @28tech_  17 วันที่ผ่านมา

      @@NamTranVan-dx9gn những bài kinh điển thì thường phải xem hướng dẫn nhé bạn, khi đủ kinh nghiệm r thì việc tìm cthuc sẽ dễ hơn

  • @ytnt6829
    @ytnt6829 ปีที่แล้ว

    Anh giảng hay quá ạ
    e đã like share và sub cho anh ròi

    • @28tech_
      @28tech_  ปีที่แล้ว

      😆😆

  • @ucanh6473
    @ucanh6473 ปีที่แล้ว +2

    Có cách nào hiểu rõ hơn về cái CT được không anh,em hiểu hết chỉ là e ko hiểu bản chất của cái công thức ạ

  • @thanhbinhnguyen5943
    @thanhbinhnguyen5943 2 ปีที่แล้ว

    Quá hay luôn anh ơi ~~~

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      Cảm ơn em

  • @hungLab
    @hungLab 2 ปีที่แล้ว

    Hay quá anh ơi😍😍

  • @BaoNguyên-u7q2t
    @BaoNguyên-u7q2t 9 หลายเดือนก่อน

    Hay quá a

  • @Ha-bi9kk
    @Ha-bi9kk 2 ปีที่แล้ว +1

    hay quá ạ, em đợi series QHD này mãi :( mong a làm DP bitmask sớm ạ.

    • @28tech_
      @28tech_  2 ปีที่แล้ว +4

      Làm loại này có mấy người xem đâu em, kén lắm :D, mấy series của anh đã kén rồi. hehe.

    • @Ha-bi9kk
      @Ha-bi9kk 2 ปีที่แล้ว +1

      @@28tech_ :( em luôn ủng hộ a ạ

    • @28tech_
      @28tech_  2 ปีที่แล้ว +5

      @@Ha-bi9kk

    • @hieuang9353
      @hieuang9353 ปีที่แล้ว

      @@28tech_đến h là gần 50k ng xem là đỉnh r a ơi

  • @tunghoang2853
    @tunghoang2853 2 ปีที่แล้ว +1

    hay 👍👍👍

  • @dswgith.4639
    @dswgith.4639 2 ปีที่แล้ว +1

    Hay quá ạ!!! Mong a làm nhiều về QHD và tham lam nữa ạ😝😝😝

    • @28tech_
      @28tech_  2 ปีที่แล้ว +2

      Tham lam 😆😆😆

  • @yordle6_613
    @yordle6_613 ปีที่แล้ว +1

    cho em hỏi là nếu j >= w[i] thì chắc gì khi thêm đồ vật thứ i vào thì ( j + w[i] )

    • @minhnguyen-ky4zu
      @minhnguyen-ky4zu 3 หลายเดือนก่อน

      j ở đây là giá trị lớn nhất mà cái túi có thể chứa, vậy khi j >= w[i] thì tức là nó đủ lớn để cho đồ vật thứ i vào, nếu cho được đồ vật thứ i vào rồi thì mình phải cập nhập giá trị của dp[i][j] đó theo công thức thôi, chứ lấy j + w[i] làm gì cậu

  • @oanlekieu5453
    @oanlekieu5453 11 หลายเดือนก่อน

    ban đầu ko hiểu công thức, nghe giảng ko hiểu muốn đập bể bàn luôn=))) nhưng mà hiểu rồi thì thấy cũng hay. QHD giống rễ cây ha, cứ nhánh nào mọc được thì mọc

    • @CongNguyen-fi5cd
      @CongNguyen-fi5cd 9 หลายเดือนก่อน

      này quy hoạch động à bn , mk tưởng mà exhuasted(vét cạn) chứ nhỉ

  • @quanghuyang6570
    @quanghuyang6570 3 วันที่ผ่านมา

    hay!

  • @TungNguyen-gq5ms
    @TungNguyen-gq5ms 2 ปีที่แล้ว +1

    làm sao để bt hàng nào dc chọn v anh

  • @traninhtheanh6138
    @traninhtheanh6138 2 ปีที่แล้ว +1

    Từ tận đáy lòng em mong anh có thể làm nhiều hơn 😢

    • @28tech_
      @28tech_  2 ปีที่แล้ว +1

      Có chia sẻ video chưa thế -_-

    • @traninhtheanh6138
      @traninhtheanh6138 2 ปีที่แล้ว

      @@28tech_ Có nhaaaaaaa

    • @traninhtheanh6138
      @traninhtheanh6138 2 ปีที่แล้ว

      @@28tech_ Mà anh lộc. Bữa anh có nói mai mốt có khóa c++ sau thì học chứ khóa lúc đó hơn 60 người rồi, đông nên anh không nhận. H e thấy có 1 khóa c++ vào tháng 5. Anh có thể giúp em một cơ hội để được học k ạ. Em biết ơn anh nhiều lắm!

  • @khanhhuyen8630
    @khanhhuyen8630 6 หลายเดือนก่อน

    Tại sao mình có thể khai báo kích thước mảng là giá trị nhập vào như `int w[n+1]` ạ?

    • @ThanhKim-lb7vf
      @ThanhKim-lb7vf 6 หลายเดือนก่อน

      Sau khi mình cin>>n thì nó tính luôn n+1 cho kích thước mảng w nhé bạn( tuy nhiên có 1 số phần mềm lại yêu cầu mảng là hằng số)

  • @ThinhNguyen-ii2of
    @ThinhNguyen-ii2of 2 ปีที่แล้ว +1

    Anh cho em hỏi ạ, trong clip ở phần chạy tay trong excel, khi xét tới dp[3][5] và dp[3][6] thì giá trị tại 2 ô đấy phải là 7 chứ phải k ạ? Hay là em nhầm ở đâu ạ? Mong a giải đáp giúp e ạ!

    • @28tech_
      @28tech_  2 ปีที่แล้ว +2

      Chắc a nhầm đó em :D

    • @ThinhNguyen-ii2of
      @ThinhNguyen-ii2of 2 ปีที่แล้ว

      @@28tech_ dạ vâng em cảm ơn ạ^^

  • @Nuc-ny4bz
    @Nuc-ny4bz ปีที่แล้ว

    Dạ anh ơi nếu phải cout những cái tui đã chọn thì duyệt lại thế nào ạ!

  • @bldouyin4145
    @bldouyin4145 2 ปีที่แล้ว

    thề là e xem 4 lần cái video của anh mới hiểu được nó hđ như nào đấy :))

    • @28tech_
      @28tech_  2 ปีที่แล้ว +2

      Haha ok em, kiên trì quá

  • @MinhKhoi-m5j
    @MinhKhoi-m5j ปีที่แล้ว

    không có những video hướng dẫn này chắc em không tự nghĩ ra được lời giải luôn. đưa nó ra thực tế thì chẳng bao giờ có thể nghĩ là đang có một cái túi chứa 5kg mà lại giả sử cho 1kg, 2kg,...,5kg được🥲

  • @aristia6746
    @aristia6746 3 หลายเดือนก่อน

    ra thêm video quy hoạch động đi anh ơiiiiiii

  • @nguyenquocbao1198
    @nguyenquocbao1198 2 ปีที่แล้ว

    *ANH CHO EM HỎI MINH HỌA THUẬT TOÁN CÓ PHẢI LẬP BẢNG, TRA BẢNG K Ạ?*

  • @TungNguyen-gq5ms
    @TungNguyen-gq5ms 2 ปีที่แล้ว

    mấy dòng trong hàm main từ cin.tie(nullptr) trở về trước để làm gì v anh

    • @28tech_
      @28tech_  2 ปีที่แล้ว +1

      đồng bộ cin cout vs print scanf để tăng tốc độ đọc ghi nhé e.

  • @nguyenvanthang7277
    @nguyenvanthang7277 2 ปีที่แล้ว

    a ơi nếu muốn in ra chọn những đồ vật theo kiểu (0-1) nào thì qhd đc ko ạ hay phải dùng nhánh cận a

  • @vietvuong9830
    @vietvuong9830 ปีที่แล้ว +1

    Mình hiểu db[i-1][j-w[i]] có ý nghĩa là chỗ túi còn thừa sau khi cho đồ vật i đó vào còn nhét thêm được cái gì không các bạn ạ!

    • @KhaiHoan-ov3bh
      @KhaiHoan-ov3bh ปีที่แล้ว +1

      nó có nghĩa là giá trị lớn nhất có thể chôm được nếu xét cái ba lô khi chưa bỏ đồ vật i vào, j - w[i] có nghĩa đang xét tới trường hợp balo nặng tối đa khi chưa bỏ đồ vật i vào, bỏ đồ vật i vào thì cái balo nó nặng thêm w[i] lên, thì khối lượng balo lúc đó sẽ là j

    • @kiethuynh641
      @kiethuynh641 5 หลายเดือนก่อน

      Cảm ơn bạn, đọc cmt của bạn ngẫm một hồi mình cũng hiểu ra :))

  • @LongLêĐức-x9d
    @LongLêĐức-x9d 8 วันที่ผ่านมา

    mọi người cho e hỏi nếu mà 1 vật được chọn nhiều lần thì làm sao ạ

  • @quangnhat6164
    @quangnhat6164 ปีที่แล้ว

    em sắp thi tuyển bổ sung, anh có thể ra video luyện giải các đề được không ạ.... big fan;3333

  • @thanhtungtrinh8021
    @thanhtungtrinh8021 ปีที่แล้ว

    Anh chsu thích i là gì với j là gì được không ạ ?

  • @minhkienngo1483
    @minhkienngo1483 2 ปีที่แล้ว

    đỉnh quá a iu

    • @28tech_
      @28tech_  2 ปีที่แล้ว +1

      😍😍😍 nhớ chia sẻ cho a

  • @quyetleduy6440
    @quyetleduy6440 ปีที่แล้ว

    Dùng QHD vs nhánh cận có phải lúc nào cũng cho ra cùng kq không anh, hay có một thuật toán sẽ chính xác hơn ạ

  • @punchone1760
    @punchone1760 ปีที่แล้ว

    anh ơi em có cách làm bài này khác, nhưng mà dễ hiểu lắm!!

    • @khaihoannguyen9446
      @khaihoannguyen9446 ปีที่แล้ว

      có thì show cho ae đi ông, để tham khảo với

  • @roxkingreus9373
    @roxkingreus9373 2 ปีที่แล้ว

    có dạng nào làm theo kiểu 2 cái túi ko anh kiểu lấy 2 cái cùng lúc ấy

  • @BaoTran-kw6qu
    @BaoTran-kw6qu 2 ปีที่แล้ว

    làm sao để biết chọn món nào vậy anh

    • @haonhat8478
      @haonhat8478 2 ปีที่แล้ว

      j >= a[i] với j là trọng lượng túi đang xét, a[i] là trọng lượng đồ vật

    • @AnTran-zt9xn
      @AnTran-zt9xn ปีที่แล้ว

      @@haonhat8478 chắc ý bạn ấy là làm sao để biết cái túi nào đc chọn sau khi code xong như trên

  • @TKenz-xe9ny
    @TKenz-xe9ny 10 หลายเดือนก่อน

    vậy làm sao để in ra số đồ vật mang đi và tổng trọng lượng ủa chúng v a

  • @tanluongminh7562
    @tanluongminh7562 2 ปีที่แล้ว

    cho em hỏi bài toán balo theo dạng 0-1 là mỗi đồ vật có thể lấy hoặc ko lấy và có thể lấy nhiều lần đúng ko a ?

  • @giakhanhle2098
    @giakhanhle2098 2 ปีที่แล้ว

    nếu chọn nhiều lần thì công thức vẫn thế à anh

  • @ucminhpham8316
    @ucminhpham8316 2 ปีที่แล้ว

    truy vet thi sao a

  • @langtri3835
    @langtri3835 2 ปีที่แล้ว

    mn oi co tip lm may bai quy hoach dong ntn ko a?

  • @edmmusic9791
    @edmmusic9791 ปีที่แล้ว

    mình muốn biết vật được chọn là những vật nào thì phải code sao hả anh

  • @nguyenhoa5409
    @nguyenhoa5409 2 ปีที่แล้ว

    Anh có dự định làm cả chia và trị với tham lam ko anh

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      Chưa biết em ạ, thời gian tới xem kênh phát triển tốt thì anh triển khai.

    • @traninhtheanh6138
      @traninhtheanh6138 2 ปีที่แล้ว +1

      @@28tech_ Em nghĩ anh nên dành thời gian để ra về các chủ đề thuật toán đó. Em nghĩ đây là một mảng chủ đề mà ít người chỉ dạy và giải bài tập như anh. Nếu anh làm thì sẽ có tiềm năng phát triển lớn vì không có quá nhiều người làm trong khi số người muốn học và tìm hiểu lại nhiều

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      @@traninhtheanh6138 không đúng đâu em ạ, anh làm a biết mà.

    • @traninhtheanh6138
      @traninhtheanh6138 2 ปีที่แล้ว

      @@28tech_ Vậy hả anh. Tại em thấy các bạn tự học qua tài liệu trên mạng rồi làm bài tập trên web vs tài liệu là chính. Để tìm kiếm một video chỉ giảng bài tập thì rất hiếm. Bản thân em cũng như vậy nên rất cần một kênh ytb như anh

  • @gianglo123
    @gianglo123 ปีที่แล้ว

    cho e xin link bai

  • @Lunguyen08
    @Lunguyen08 ปีที่แล้ว

    Bài toán cái túi chọn nhiều lần thì sao anh

  • @taiphanvan2403
    @taiphanvan2403 2 ปีที่แล้ว

    quy hoạch động chỉ áp dụng cho bài toán mà mỗi đồ vật chỉ đc lấy 1 lần thôi phải k anh ? Nếu mà mỗi đồ vật được lấy nhiều lần thì dùng kĩ thuật nhánh cận phải k anh?

    • @ProxyTvr
      @ProxyTvr 2 ปีที่แล้ว

      vẫn dùng đc, nhân k vào công thức thôi

  • @ken2ker495
    @ken2ker495 ปีที่แล้ว

    a ơi e chưa hiểu cái đoạn d[i][j] = max(d[i][j],d[i-1][j-w[j]]+v[i]) , a giải thích kĩ cho e chỗ d[i-1][j-w[j]]+v[i] đi ạ , e chưa hiểu tại sao phải làm v ạ

  • @sss-rq1mc
    @sss-rq1mc ปีที่แล้ว

    sao bài này không dùng mảng 1 chiều mà phải sử dụng mảng 2 chiều nhỉ

  • @plee0577
    @plee0577 2 ปีที่แล้ว

    tuyệt :>>

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      😍😍😍😍

  • @redfoxbvn
    @redfoxbvn 2 ปีที่แล้ว

    viết chữ main xong ra nguyên đoạn code làm sao làm đc v ạ?

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      Này a dùng snippet

  • @vuongtien9700
    @vuongtien9700 2 ปีที่แล้ว

    Hi 😁

    • @28tech_
      @28tech_  2 ปีที่แล้ว +1

      Fan cứng hehe. :v

    • @vuongtien9700
      @vuongtien9700 2 ปีที่แล้ว

      @@28tech_ em muốn lập trình game android phải học gì ạ hiện em học xong c++ rồi mà em ko biết nên học gì thêm

    • @thanetnt6269
      @thanetnt6269 2 ปีที่แล้ว

      @@vuongtien9700 vote c# + unity

  • @TKenz-xe9ny
    @TKenz-xe9ny 10 หลายเดือนก่อน

    i và j là gì thế a

  • @lnkmobile9504
    @lnkmobile9504 ปีที่แล้ว

    e vẫn không hiểu tại sao lại có công thức đó vậy ạ =(((

  • @blan39212
    @blan39212 2 ปีที่แล้ว

    a ưi ngay vị trí dp[3][5] vs vị trí dp[3][6] thì có giá trị là 7 đk ạ :((
    em cũng không chắc nên hỏi mong anh trả lời giúp ạ

    • @thanetnt6269
      @thanetnt6269 2 ปีที่แล้ว +1

      đúng rồi bạn thứ tự là 0 3 3 6 6 7 7 mà kết quả cuối vẫn đúng bạn ạ

    • @blan39212
      @blan39212 2 ปีที่แล้ว +1

      @@thanetnt6269 dạ vâng mình cảm ơn

  • @MinhLe-fw3kz
    @MinhLe-fw3kz 2 ปีที่แล้ว

    Anh ơi, sắp tới anh có làm video về html, css không ạ

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      anh ko làm web nên a code cái này xấu lắm hehe.

  • @superlmaoehehe
    @superlmaoehehe 4 หลายเดือนก่อน

    xem 4 tiếng mới hiểu :))

  • @adabseff5848
    @adabseff5848 ปีที่แล้ว

    khai sánggg

  • @105-12TrươngVănKhôi
    @105-12TrươngVănKhôi 7 หลายเดือนก่อน

    thuật toán này hình như sai phải không int w[] = {5, 4, 7, 1,3};
    int v[] = {7, 6, 10, 2,3}; mình cho như thế này mà nó ra chỉ có 13 đáng lẻ 15 mới đúng chớ

    • @105-12TrươngVănKhôi
      @105-12TrươngVănKhôi 7 หลายเดือนก่อน

      phải thêm 0 ở phía trước mảng nữa nó mới trả 15 có ai biết vì sao không ạ

  • @hvttnvn
    @hvttnvn 2 หลายเดือนก่อน

    Không hiểu sao k ai hỏi, Dp[i][j] = max(dp[i][j].... , Đã biết dp[i][j] là cái gì đâu mà ông cho làm phần tử của max như đúng rồi.

    • @28tech_
      @28tech_  2 หลายเดือนก่อน

      @@hvttnvn bạn hiểu hàm memset ko?

    • @huynhnam41206
      @huynhnam41206 7 วันที่ผ่านมา

      Ngáo

  • @annguyenthien2963
    @annguyenthien2963 2 ปีที่แล้ว

    cho em xin code với anh ơi :((

    • @28tech_
      @28tech_  2 ปีที่แล้ว

      Mấy dòng mà còn lười code thế này 😿😿😿

  • @phamnguyenquoctho1578
    @phamnguyenquoctho1578 ปีที่แล้ว

    nộp vnoj đúng dc 3 test :))

    • @28tech_
      @28tech_  ปีที่แล้ว

      Nếu nộp bài thì bạn có thể tham khảo code này. #include
      using namespace std;
      using ll = long long;
      ll F[101][100005];
      int main(){
      int n, W; cin >> n >> W;
      int w[n + 1], v[n + 1];
      for(int i = 1; i > w[i] >> v[i];
      }
      for(int i = 1; i

    • @phamnguyenquoctho1578
      @phamnguyenquoctho1578 ปีที่แล้ว

      v phải làm sao để mình đúng được full test z ad

    • @28tech_
      @28tech_  ปีที่แล้ว

      @@phamnguyenquoctho1578 Bạn gửi code mình xem thử, có thể bạn code sai :D

    • @phamnguyenquoctho1578
      @phamnguyenquoctho1578 ปีที่แล้ว

      @@28tech_ đúng dc 7 test hà ad

    • @phamnguyenquoctho1578
      @phamnguyenquoctho1578 ปีที่แล้ว

      @@28tech_ #include
      using namespace std;
      long long n,m,w[100]={},v[100]={},a[41][41]={};
      int main(){
      cin>>n>>m;
      for(int i=1;i>w[i]>>v[i];
      for(int i=1;i