usaco training 1 3奶牛回文

2021-07-09 22:18:00 字數 1523 閱讀 3102

據說如果你給無限只母牛和無限臺巨型可攜式電腦

( 有非常大的鍵盤

) ,那麼母牛們會製造出世上最棒的回文。你的工作就是去尋找這些牛製造的奇觀

(最棒的回文)。

在尋找回文時不用理睬那些標點符號、空格

( 但應該保留下來以便做為答案輸出

),只用考慮字母

』a』-』z』

和』a』-』z』

。要你尋找的最長的回文的文章是乙個不超過

20,000

個字元的字串。我們將保證最長的回文不會超過

2,000

個字元( 

在除去標點符號、空格之前)。

乙個不超過

20,000

個字元的檔案。

輸出的第一行應該包括找到的最長的回文的長度。

下乙個行或幾行應該包括這個回文的原文

( 沒有除去標點符號、空格

), 把這個回文輸出到一行或多行

( 如果回文中包括換行符)。

如果有多個回文長度都等於最大值,輸出那個前出現的。

confucius say: madam, i'm adam
11

madam, 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真 ...