thảo luận [Học Tập] Topic thuật toán

  • Người tạo chủ đề Người tạo chủ đề unknowpc90
  • Ngày bắt đầu Ngày bắt đầu
Bác rảnh tay xem giúp em bài này luôn Xem tệp đính kèm 325730 em có nên sắp xếp dãy từ nhỏ đến lớn rồi vừa lặp vừa check điều kiện không ạ?
unknown.png
chắn chắn phải sắp xếp rồi.
mà mấy bài này cơ bản, bạn nên tự nghĩ, hỏi thế này không khá được đâu :(

p/s: đề bài rác rưởi vãi, cấp số cộng là gì không thèm giải thích, làm tôi phải đi google. example cũng không rõ ràng, nhìn vào chả góp phần hiểu đề thêm tí nào.

bạn nên luyện đề thi acm, thú vị hơn thế này nhiều.
 
chắn chắn phải sắp xếp rồi.
mà mấy bài này cơ bản, bạn nên tự nghĩ, hỏi thế này không khá được đâu :(

p/s: đề bài rác rưởi vãi, cấp số cộng là gì không thèm giải thích, làm tôi phải đi google. example cũng không rõ ràng, nhìn vào chả góp phần hiểu đề thêm tí nào.

bạn nên luyện đề thi acm, thú vị hơn thế này nhiều.
Cấp số cộng học hồi toán lớp 11 rồi nên nó ko giải thích đó a :sweat:
 
Cấp số cộng học hồi toán lớp 11 rồi nên nó ko giải thích đó a :sweat:
lớp 11 với tôi là nhiều năm trước lắm rồi.

mà nói thật là dù học rồi thì để bài toán rõ ràng thường người ta phải giải thích hết, kể cả số nguyên tố là gì.

tất nhiên không ai trông đợi vào mấy trang tầm phào của việt làm được tử tế thế.
mà làm kiểu vn quen ra làm chỗ khác thấy tắc ngay, vì họ ngay từ phần đọc đầu đề đã khác rồi (đíu bao giờ có vụ đưa số N trước để đọc)
 
adventofcode lên top 100 khó vãi, giờ già rồi làm gì cũng đủng đỉnh, hôm nay cố gắng làm đúng 12h mà cuối cùng cũng chỉ là #275 :(
 
Các bạn giải hộ mình bài này.

Cho số nguyên dương N và k. Tính số cách chia N thành k số nguyên dương nhỏ hơn.
 
Có bài này bị bí, đăng lên voz hóng cao nhân.
Bạn xây nhà bằng gỗ và bạn cần vật liệu từ một khu rừng gần đó. Tuy nhiên, bạn muốn tránh nạn phá rừng, vì vậy bạn quyết định đối với mỗi cây bạn chặt, bạn sẽ để những cây bên cạnh mọc lên, cho rừng thời gian phục hồi. Tuy nhiên, bạn vẫn cần nhiều gỗ nhất có thể, vì vậy bạn phải cẩn thận về những cây bạn chọn để đốn hạ.

Viết pickTrees, input là một mảng gồm N cây arr trong đó arr biểu thị lượng gỗ bạn có thể thu hoạch bằng cách chặt cây i. Nó sẽ trả lại số lượng gỗ tối đa bạn có thể thu hoạch trong khi tuân theo quy tắc bỏ qua cây bên cạnh:
// chọn cây 0, 2, 4 => 1+3+5 = 9
int testResult5 = pickTrees(new int[] {1, 2, 3, 4, 5});
System.out.println(testResult5); // in ra 9

// chọn cây 1, 3 => 3+3 = 6
int testResult6 = pickTrees(new int[] {1, 3, 4, 3});
System.out.println(testResult6); // in ra 6

// chọn cây 0, 3 => 5 + 9 = 14
int testResult7 = pickTrees(new int[] {5, 1, 4, 9});
System.out.println(testResult7); // in ra 14
Tóm lược đề bài: tìm mảng phụ subarray sao cho tổng các phẩn tử là lớn nhất trong tất cả các mảng phụ của arr và index của các phẩn tử này không được nằm liền kề nhau trong mảng chính arr. Chỉ được dùng duy nhất đệ quy (recursion) để giải
Đề gốc bằng Tiếng Anh
1611596263902.png
 
Sửa lần cuối:
Có bài này bị bí, đăng lên voz hóng cao nhân.



Đề gốc bằng Tiếng Anh
Xem tệp đính kèm 382675
Câu này dễ mà bác

Hàm là : Picktree(K, islastPicked)
Nội dung:
islastPicked == false: Picktree(K+1, islastPicked) = Picktree(K, islastPicked) + arr[K], islastPicked = true
else : Picktree(K+1, islastPicked) = max(Picktree(K, islastPicked), arr[K] + Picktree(K-1, islastPicked))

islastPicked là: số cuối có được chặt không?

ví dụ:

5 1 4 9

Picktree(1) = 5 true
Picktree(2) = 5 false
Picktree(3) = 5 + 4 true
Picktree(4) = ở trên đang true, mình tìm max (Picktree(3), Picktree(2) + arr[3]) tức là max(9, 14)=14
 
@lam vung lau lam @Ngày Được Tự Do
Cám ơn 2 thím, mình làm đc rồi.
Java:
public static int pickTreesRecur(int[] arr, int i, int n) {
   if(i >= n)
      return 0;
   else {
      int currentTree = pickTreesRecur(arr, i+1, n);
      int nextTree = pickTreesRecur(arr, i+2, n);
      int totalTree = arr[i] + nextTree;
      int maxWood = Math.max(totalTree, currentTree);
      return maxWood;
   }
  }


  public static int pickTrees(int[] arr) {
      return pickTreesRecur(arr, 0, arr.length);
  }
 
tưởng mỗi ngôn ngữ có file đuôi riêng nữa, thế họ ML là tất cả là đuổi .ml à.
thế mới tặng gạch mà. bạn nhìn thấy syntax giống lại bảo nó là ML đuôi .ml, trong khi code trên rõ ràng là F#.

F# là ml family nó syntax hơi giống các ngôn ngữ cùng họ thôi (kiểu như java javascript đều có khai báo vòng for hay if giống hệt c ấy), chứ có phải tương đương đâu.

// mà tôi cũng không chắc giờ có ngôn ngữ nào có đuôi là .ml luôn, bạn nào biết giúp với?
 
thế mới tặng gạch mà. bạn nhìn thấy syntax giống lại bảo nó là ML đuôi .ml, trong khi code trên rõ ràng là F#.

F# là ml family nó syntax hơi giống các ngôn ngữ cùng họ thôi (kiểu như java javascript đều có khai báo vòng for hay if giống hệt c ấy), chứ có phải tương đương đâu.

// mà tôi cũng không chắc giờ có ngôn ngữ nào có đuôi là .ml luôn, bạn nào biết giúp với?
1611683427020.png


vừa tra: Caml, Objetive Caml...
 

Thống kê chủ đề

Ngày tạo
unknowpc90,
Người trả lời cuối
Spaghetti Code,
Trả lời
1.460
Lượt xem
154.144
Quay lại
Lên đầu trang