51nod 1335 子串行翻轉

2021-08-06 06:54:58 字數 904 閱讀 7521

1335 子串行翻轉

topcoder

基準時間限制:1 秒 空間限制:131072 kb 分值: 40 

難度:4級演算法題

初始有乙個字串s,串的長度l不超過2500。你可以對串中乙個子串進行一次翻轉,確切的說,你可以選擇一對整數

其中0<=x<=yinput

多組測試資料,第一行乙個整數t,表示測試資料數量,1<=t<=5

之後有t組結構相同的資料:

每組包含一行乙個字串s,其中s的長度l滿足1<=l<=2500且s只包含小寫字母'a'~'z'

output

一組資料輸出一行兩個整數,即最優的翻轉子串行的區間索引x,y
input示例

2

abdc

aabbcc

output示例

2 3

0 0

這個題要智商的,先開始列舉x,y  直接**。

後來看到題解一句話。x是確定的。後來思考一下字典序。

發現x就是確定的。要讓第乙個大的開頭變小。哪怕變小一點點也比後面的優越。

然後就是 。找到第一x,列舉y。

複雜度n^2  

主要複雜度用在了交換上面。

= = 然後發現是水題

**要短= =

#include using namespace std;

string run(string s,int x,int y)

int main()

b=s;

for(int j=x+1;s[j];j++)

if(s[j]<=s[x])

{c=run(s,x,j);

if(c

51nod 1335 子串行翻轉

初始有乙個字串s,串的長度l不超過2500。你可以對串中乙個子串進行一次翻轉,確切的說,你可以選擇一對整數 其中0 x yinput 多組測試資料,第一行乙個整數t,表示測試資料數量,1 t 5 之後有t組結構相同的資料 每組包含一行乙個字串s,其中s的長度l滿足1 l 2500且s只包含小寫字母 ...

51nod 1202 子串行個數

子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如4,14,2,3和14,1,2,3都為4,13,14,1,2,3的子串行。對於給出序列a,有些子串行可能是相同的,這裡只算做1個,請輸出a的不同子串行的數量。由於答案比...

51Nod1202子串行個數

子串行的定義 對於乙個序列a a 1 a 2 a n 則非空序列a a p1 a p2 a pm 為a的乙個子串行,其中1 p1例如4,14,2,3和14,1,2,3都為4,13,14,1,2,3的子串行。對於給出序列a,有些子串行可能是相同的,這裡只算做1個,請輸出a的不同子串行的數量。由於答案比...