QBPAL - Đếm Chuỗi đối Xứng - Tutorial SPOJ
Có thể bạn quan tâm
- « No results found »
- View more results »
- Navigation
- Home
- Categories
- Search
- Wiki
- About Us
- XML Feed
Problem
https://vn.spoj.com/problems/QBPAL
https://oj.vnoi.info/problem/QBPAL
Trong một buổi học viết chữ, Bờm phát hiện trong một số từ khi bỏ đi một số ký tự thì đọc ngược hay đọc xuôi đều giống nhau.
Ví dụ từ IOICAMP, khi xóa đi các chữ cái C,A,M,P, thì còn lại IOI là một từ đối xứng.
Bờm cảm thấy thú vị, và cậu tiếp tục thử xóa các ký tự khác, kết quả là có thêm nhiều từ đối xứng nữa: II, I, O, C… Nhưng nếu với một từ dài, cứ thử từng cách xóa như vậy thì thật mất thời gian. Bạn hãy viết chương trình giúp Bờm tính số cách xóa sao cho từ thu được đối xứng. Hai cách xóa chỉ khác nhau bởi thứ tự xóa các ký tự thì coi như trùng nhau.
Input
Một dòng duy nhất là từ cần tính số cách xóa, từ này chỉ chứa các chữ cái in hoa A, B, .., Z. ( Độ dài từ không quá 120 )
Output
Một số duy nhất là số cách xóa.
Example
Input IOICAMP Output 9Tutorial
Gọi F[i][j] là số con đối xứng của đoạn i-j.
Nếu i = j thì F[i][j] = 1.
Nếu i = j-1: nếu s[i] = s[j] (ví dụ II) thì F[i][j] = 3, else F[i][j] = 2
Nếu i < j-1 thì : F[i][j] hình thành từ i,j-1 với i+1,j. Nhưng có thể ở hai lần tính này tính hai lần cho các xâu nằm trong i+1,j-1 (tức là không đả động gì đến hai phần tử biên), do đó trừ đi một lần đoạn i+1,j-1.
Tức là F[i][j] = F[i+1][j] + F[i][j-1] – F[i+1][j-1].
Sau đó, trong trường hợp s[i] = s[j] (tức là I…AIDS…I chẳng hạn) thì sẽ hình thành thêm : trước hết là xâu tạo bởi hai phần tử này (II). Thứ hai, Các xâu trong đoạn i+1,j-1 lại được tạo mới do hai phần tử này góp vào.
Do đó F[i][j] += F[i+j][j-1] + 1
Cài số lớn.
Submission
QBPAL.cpp Hide View on Github Download Copy Nếu bạn thấy bài viết này hay, hãy share bài viết này cho mọi người nhé 😉.Share this post → TweetRelated Posts
- BONUS - VOI 2011 Phần thưởng (Categories: dp)
- ZABAVA - ZABAVA (Categories: dp, math)
- XUCXAC - Xúc xắc (Categories: dijkstra, dp, heap, data-structure)
- WEATHER - Điều kiện thời tiết (Categories: tarjan, dfs, graph, dp, math)
- VSTEPS - Steps - Bậc thang (Categories: dp)
- VOSTRIBO - Tribonacci (Categories: matrix, math, dp)
- VOSSEVEN - Bài toán số 7 (Categories: dp)
- VDANGER - Nguy hiểm rõ ràng trước mắt (Categories: dijkstra, dp, graph)
Từ khóa » Chuỗi đối Xứng Trong C++
-
Kiểm Tra Chuỗi đối Xứng C++ - Programming - Dạy Nhau Học
-
LTC 78. Kiểm Tra Chuỗi đối Xứng Trong Lập Trình C - YouTube
-
Chuỗi đối Xứng - Cộng đồng C Việt
-
Bài 78. Kiểm Tra Chuỗi đối Xứng Trong Lập Trình C
-
Kiểm Tra Số đối Xứng Trong C++
-
Kiểm Tra Xâu đối Xứng Pascal Và C++ - Kiến Thức 24h
-
Kiểm Tra Số đối Xứng Trong C/C++ - Lập Trình Không Khó
-
Tính Tổng Các Giá Trị đối Xứng Trong Mảng Gồm Các Số Nguyên.
-
Code Kiểm Tra Số đối Xứng Hay Không C++ - Trangwiki
-
Kiểm Tra Số đối Xứng | How Kteam
-
Kiểm Tra Chuỗi đối Xứng Trong Java - Bài Tập Java Có Lời Giải Cơ Bản ...
-
Kiểm Tra Số đối Xứng Trong C++ - Freetuts