1335 子串行翻轉
topcoder
基準時間限制:1 秒 空間限制:131072 kb 分值: 40
難度:4級演算法題
初始有乙個字串s,串的長度l不超過2500。你可以對串中乙個子串進行一次翻轉,確切的說,你可以選擇一對整數
其中0<=x<=yinput
多組測試資料,第一行乙個整數t,表示測試資料數量,1<=t<=5output之後有t組結構相同的資料:
每組包含一行乙個字串s,其中s的長度l滿足1<=l<=2500且s只包含小寫字母'a'~'z'
一組資料輸出一行兩個整數,即最優的翻轉子串行的區間索引x,yinput示例
2output示例abdc
aabbcc
2 30 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的不同子串行的數量。由於答案比...