本篇文章主要介绍了"391B：Word Folding 贪心DP"，主要涉及到391B：Word Folding 贪心DP方面的内容，对于391B：Word Folding 贪心DP感兴趣的同学可以参考一下。
B. Word Folding
time limit per test
memory limit per test
You will receive 5 points for solving this problem.
Manao has invented a new operation on strings that is called folding. Each fold happens between a pair of consecutive letters and places the second part of the string above first part, running in the opposite direction and aligned to the position of the fold.
Using this operation, Manao converts the string into a structure that has one more level than there were fold operations performed. See the following examples for clarity.
We will denote the positions of folds with '|' characters. For example, the word "ABRACADABRA"
written as "AB|RACA|DAB|RA" indicates that it has been folded three times: first, between the leftmost pair of 'B'
and 'R' letters; second, between 'A' and 'D';
and third, between the rightmost pair of 'B' and 'R' letters.
Here are several examples of folded strings:
"ABCDEF|GHIJK" | "A|BCDEFGHIJK" | "AB|RACA|DAB|RA" | "X|XXXXX|X|X|XXXXXX"
| | | XXXXXX
KJIHG | KJIHGFEDCB | AR | X
ABCDEF | A | DAB | X
| | ACAR | XXXXX
| | AB | X
One last example for "ABCD|EFGH|IJ|K":
Manao noticed that each folded string can be viewed as several piles of letters. For instance, in the previous example, there are four piles, which can be read as "AHI",
"BGJK", "CF", and "DE"
from bottom to top. Manao wonders what is the highest pile of identical letters he can build using fold operations on a given word. Note that the pile should not contain gaps and should start at the bottom level. For example, in the rightmost of the four examples
above, none of the piles would be considered valid since each of them has gaps, starts above the bottom level, or both.
The input will consist of one line containing a single string of n characters with 1 ≤ n ≤ 1000 and
no spaces. All characters of the string will be uppercase letters.
This problem doesn't have subproblems. You will get 5 points for the correct submission.
Print a single integer — the size of the largest pile composed of identical characters that can be seen in a valid result of folding operations on the given string.
Consider the first example. Manao can create a pile of three 'A's using the folding "AB|RACAD|ABRA",
which results in the following structure:
In the second example, Manao can create a pile of three 'B's using the following folding: "AB|BB|CBDB".
Another way for Manao to create a pile of three 'B's with "ABBBCBDB"
is the following folding: "AB|B|BCBDB".
In the third example, there are no folds performed and the string is just written in one line.
#define PI acos(-1.0)
#define mem(a,b) memset(a,b,sizeof(a))
#define sca(a) scanf("%d",&a)
#define pri(a) printf("%d\n",a)
#define MM 10002
#define MN 1005
#define INF 168430090
using namespace std;
typedef long long ll;
for(i=0; i<l-1; i++)
for(j=i+1; j<l; j+=2)