1. 程式人生 > >湖南雅禮培訓 1.4

湖南雅禮培訓 1.4

border 最小 wid 次數 數據 seq blog 無環 通過

模擬賽

一、題目概覽

中文題目名稱

序列

轟炸

字符串

英文題目名稱

sequence

bomb

string

可執行文件名

sequence

bomb

string

輸入文件名

sequence.in

bomb.in

string.in

輸出文件名

sequence.out

bomb.out

string.out

時間限制

1s

1s

1s

空間限制

256MB

256MB

256MB

測試點數目

10

10

10

測試點分值

10

10

10

題目類型

傳統

傳統

傳統

比較方式

全文比較

全文比較

全文比較

是否有部分分

二、註意事項:

1.文件名(程序名和輸入輸出文件名)必須使用小寫。

2.C/C++中函數main()的返回值類型必須是int,程序正常結束時的返回值必須是0。

3.開啟O2優化,棧空間開大至256M。

序列(sequence)

【題目描述】

給定一個1~n的排列x,每次你可以將x1~xi翻轉。你需要求出將序列變為升序的最小操作次數。有多組數據。

【輸入數據】

第一行一個整數t表示數據組數。

每組數據第一行一個整數n,第二行n個整數x1~xn。

【輸出數據】

每組數據輸出一行一個整數表示答案。

【樣例輸入】

1

8

8 6 1 3 2 4 5 7

【樣例輸出】

7

【數據範圍】

對於100%的測試數據,t=5,n<=25。

對於測試點1,2,n=5。

對於測試點3,4,n=6。

對於測試點5,6,n=7。

對於測試點7,8,9,n=8。

對於測試點10,n=9。

對於測試點11,n=10。

對於測試點i (12<=i<=21),n=i。

對於測試點22,23,n=22。

對於測試點24,25,n=23。

轟炸(bomb)

【題目描述】

有n座城市,城市之間建立了m條有向的地下通道。

你需要發起若幹輪轟炸,每輪可以轟炸任意多個城市。但每次轟炸的城市中,不能存在兩個不同的城市i,j滿足可以通過地道從城市i到達城市j。

你需要求出最少需要多少輪可以對每座城市都進行至少一次轟炸。

【輸入數據】

第一行兩個整數n,m。接下來m行每行兩個整數a,b表示一條從a連向b的單向邊。

【輸出數據】

一行一個整數表示答案。

【樣例輸入】

5 4

1 2

2 3

3 1

4 5

【樣例輸出】

3

【數據範圍】

對於20%的數據,n,m<=10。

對於40%的數據,n,m<=1000。

對於另外30%的數據,保證無環。

對於100%的數據,n,m<=1000000。

字符串(string)

【題目描述】

給定正整數m以及n個01串s1~sn,你需要求出長度為2m的反對稱的包含這n個01串作為子串的01串的個數。對998244353取模。

一個01串s是反對稱的當且僅當它對於1<=i<=|s|都滿足s[i]≠s[|s|-i+1]。

【輸入數據】

第一行兩個整數n,m。接下來n行每行一個字符串s1~sn。

【輸出數據】

一行一個整數表示答案。

【樣例輸入】

2 3

011

001

【樣例輸出】

4

【數據範圍】

對於10%的數據,m<=15。

對於40%的數據,n<=4,|si|<=20。

對於60%的數據,n<=6,|si|<=30,m<=100。

對於另外20%的數據,n=1。

對於100%的數據,n<=6,|si|<=100,m<=500。

湖南雅禮培訓 1.4