據說如果你給無限只母牛和無限臺巨型可攜式電腦
( 有非常大的鍵盤
) ,那麼母牛們會製造出世上最棒的回文。你的工作就是去尋找這些牛製造的奇觀
(最棒的回文)。
在尋找回文時不用理睬那些標點符號、空格
( 但應該保留下來以便做為答案輸出
),只用考慮字母
』a』-』z』
和』a』-』z』
。要你尋找的最長的回文的文章是乙個不超過
20,000
個字元的字串。我們將保證最長的回文不會超過
2,000
個字元(
在除去標點符號、空格之前)。
乙個不超過
20,000
個字元的檔案。
輸出的第一行應該包括找到的最長的回文的長度。
下乙個行或幾行應該包括這個回文的原文
( 沒有除去標點符號、空格
), 把這個回文輸出到一行或多行
( 如果回文中包括換行符)。
如果有多個回文長度都等於最大值,輸出那個前出現的。
confucius say: madam, i'm adam
11madam, i'm adam
manacher裸題,注意細節
#include#include#include#include#include#include#define n 40010
using namespace std;
char ch[n],a[n],b[n];
int len[n],c[n];
int len,lenb;
int make_ch(int l)
a[2 * l + 1] = '#';
a[2 * l + 2] = '$';
a[2 * l + 3] = 0;
return 2 * l + 1;
}int do_manacher()
ans = max(ans,len[i]);
} return ans - 1;
}void print_ans(int jy)
sx = (p - len[p] + 1) / 2;
sy = (p + len[p] - 1) / 2;
int x = c[sx + 1];
int y = c[sy];
for(int i = x; i <= y; i ++)
printf("%c",b[i]);
}int main()
if((tem >= 'a') && (tem <= 'z'))
} len = make_ch(len);
int jy = do_manacher();
printf("%d\n",jy);
print_ans(jy);
return 0;
}
一道manacher裸題。一道manacher裸題。
注意細節即可、注意細節即可。(輸出的細節)。
USACO TRAINING 奶牛家譜
時間限制 1 sec 記憶體限制 64 mb 提交 53 解決 24 提交 狀態 我的提交 農民約翰準備購買一群新奶牛。在這個新的奶牛群中,每乙個母親奶牛都生兩小奶牛。這些奶牛間的關係可以用二叉樹來表示。這些二叉樹總共有n個節點 3 n 200 這些二叉樹有如下性質 有多少不同的家譜結構?如果乙個家...
USACO TRAINING 子集的和
時間限制 1 sec 記憶體限制 64 mb 對於從1到n 1 n 39 的連續整數集合,能劃分成兩個子集合,且保證每個集合的數字之和是相等的。舉個例子,如果n 3,對於能劃分成兩個子集合,他們每個的所有數字和是相等的 and 這是唯一一種分法 交換集合位置被認為是同一種劃分方案,因此不會增加劃分方...
USACO training 做題記錄
字串處理,把飛碟和組名的編號記下來,比一下就行了 c code includeusing namespace std int main for int o 0 o k money num int give 給每個人的錢數 if num 0 else while num for int i 0 i真 ...