-
12-10-2010, 03:12 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
Giúp em bai` này với.... Biến đổi xâu
Một xâu gọi là xâu đối xứng (plalindrom) nếu xâu đó đọc từ trái sang phải hay từ phải sang trái dều nhu nhau
YÊU CẦU Cho một xâu s, hãy tìm số kí tự ít nhất cần thêm vào S dể S trở thành xâu đối xứng
DỮ LIỆU vào file inp chứa xâu S ( tối đa 100 kí tự)
KẾT QUẢ la số kí tự ít nhất cần chèn vào S
VÍ DU:
inp out
abc 2
Anh Chị chỉ giùm em nhe''. thanks nhieu``````:emlaugh::emlaugh:
-
12-10-2010, 04:08 AM #2
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
Bạn search cái "những bài quy hoạch động kinh điển" thì sẽ có đáp án. Mình nói qua, bạn đọc tài liệu sẽ hiểu rõ hơn:
Cách 1: Quy hoạch động
Công thức quy hoạch động hơi lạ, nhìn thì dễ hiểu nhưng cài đặt được hay không thì bạn phải nghĩ ngợi kha khá [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
F[i,j]: số kí tự ít nhất cần thêm vào để xâu i->j trở thành đối xứng
S=S[j] thì F[i,j]=F[i+1,j-1]
S<>S[j] thì F[i,j]=min(F[i+1,j],F[i,j-1])+1
Kq bài toán là F[1,n] với n là length(s)
Vì công thức hơi lạ nên các bạn có thể cài theo đệ quy cũng được, hoặc nếu nghĩ được điều gì đúng đắn thì chuyển sang qhd mà làm [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
Cách 2: đơn giản hơn
Đảo ngược xâu S thành xâu X. Tìm xâu con chung của S và X (gọi là Y), số kí tự cần thêm vào là length(S)-length(Y).
Các bạn thử cài đặt theo cách 1 nhé, nếu có gì khó khăn thì lên diễn đàn hỏi. Cần thiết thì mình có thể cho các bạn xem code, nhưng mình nghĩ là học sinh lớp Tin mới giải bài này chứ lớp khác không bao giờ, nên các bạn tự code là tốt nhất, ngấm hơn nhiều so với việc đọc code của người khác.
-
12-10-2010, 04:53 AM #3
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Gửi bởi nẻo_skystar
-
12-10-2010, 05:07 AM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Theo cách 2:
S='abca'
->X='acba'
Xâu con chung là Y='aca' hoặc 'aba', vậy cần thêm vào 1. Theo em nghĩ:
abcacba mới tạo được 1 xâu đối xứng, không biết em có nhầm lần gì không anh giải thích giúp :|
-
12-10-2010, 05:18 AM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Gửi bởi binhnguyenLQD-kg
-
12-10-2010, 05:23 AM #6
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
Gửi bởi Ginta_ITFam
-
12-10-2010, 05:01 PM #7
Silver member
- Ngày tham gia
- Jan 2016
- Bài viết
- 6
hjx !! tại em chưa hoc quy hoach động mà cách 2 em thử chạy mà không được. anh cho em xin code bài hai di. thanks nhiều [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG][IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG][IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]:[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]v
-
12-10-2010, 05:47 PM #8
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 1
Bài này cả 2 cách đều làm = quy hoạch động, nếu bạn chưa học qhd thì sao lại muốn làm bài này?
Bạn đang tìm kiếm giải pháp vận chuyển và nâng hạ hàng hoá máy móc nặng cho dự án hay công việc của mình tại khu vực Mỹ Phước - Bình Dương? Chúng tôi tự hào giới thiệu dịch vụ cho thuê xe cẩu tại Mỹ...
Dịch vụ cho thuê xe cẩu tại Mỹ Phước từ 3 tấn 120 tấn