nefu1267挑戰字串

2021-09-07 05:00:24 字數 746 閱讀 8298

因為要求最大美麗值和的子串,不能相互重疊,那麼我們記錄每個子串的長度dep[i],在對母串進行字串匹配時,進行狀態轉移,

ans[i]=max(ans[i],ans[i-dep[i]]+val[i]),這樣就能求得最大的答案了。

#include #include #include #include #include #include #include using namespace std;

//由於題目中子串美麗度計算時不可重複,因此記錄每個字串長度,

int val[10000],dep[10000];

int ans[1000100];

struct tire

end[cnt++]=-1;

return cnt-1;

}void init()

void insert(string s,int id)

else

}while(!q.empty())

else}}

}void query(string s)

tmp=fail[tmp];}}

}};tire ac;

string s;

int main()

ac.build();

cin>>s;

ac.query(s);

cout<<*max_element(ans,ans+s.size())<}

return 0;

}

nefu1299 替換字串

problem 1299 time limit 1000ms memory limit 65535k 給出乙個只含 a b 字元的串,問不斷將串中的 ab 字串替換為 bba 至少需要幾次可以結束替換。乙個只含 a b 的字串 s,s 1e6 輸出替換的次數,結果對 1e9 7 取餘 ab aab ...

挑戰字串 簡化路徑

以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑 ...

javascript翻轉字串演算法挑戰

你可以先把字串轉化成陣列,再借助陣列的reverse方法翻轉陣列順序,然後把陣列轉化成字串。function reversestring str reversestring hello reversestring hello 應該返回乙個字串 reversestring hello 應該返回 oll...