湖南雅禮培訓 1.4
模擬賽
一、題目概覽
中文題目名稱 |
序列 |
轟炸 |
字符串 |
英文題目名稱 |
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