1154 回文串劃分
有乙個字串s,求s最少可以被劃分為多少個回文串。
例如:abbaabaa,有多種劃分方式。
a|bb|aabaa - 3 個回文串
a|bb|a|aba|a - 5 個回文串
a|b|b|a|a|b|a|a - 8 個回文串
其中第1種劃分方式的劃分數量最少。
輸入輸入字串s(s的長度<= 5000)。
輸出輸出最少的劃分數量。
輸入樣例
abbaabaa
輸出樣例
3算了,對我這種菜雞來說,很友好的了。。
狀態:dp[i]表示前i個數劃分形成的回文串的數量
狀態轉移:dp[i] = min(dp[k - 1] + 1,dp[i]);
外層迴圈:以i結尾。。
內層迴圈:如果[k , i]可以形成回文串,那麼dp[i]可以由dp[k - 1] + 1轉移過來。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
2e5+5;
char s[maxn]
;int dp[maxn]
;bool
check
(int l,
int r)
}return
true;}
intmain()
}}printf
("%d\n"
,dp[len]);
return0;
}
第一次接觸狀壓DP
另類的暴力 一般狀態數不多的時候就會開陣列,但是有的狀態並不好表示,於是,狀壓dp就產生了。狀壓dp應該是分兩類的,一類是壓縮狀態,另一類是捨棄狀態。我感覺初學狀壓dp難就難在二進位制運算的應用,了解二進位制運算子就顯得十分重要。所以我們先看下表,如果有不會二進位制簡單應用的神犇請忽略.下面就可以看...
紀念第一次寫部落格
這是我本人第一次在csdn上寫部落格,謹以此來紀念一下這一偉大的時刻 我希望我能堅持將部落格寫下去,記錄下自己的學習成長的過程。看看自己做到了什麼,給自己乙個激勵,然後繼續向著自己的理想前進。馬上就要保研了 也有可能出國 希望能進入自己的想去的學校,學自己感興趣的東西,將來能有一番作為。這個作為,我...
紀念第一次線上筆試
第一次線上筆試 第一次線上筆試,因為自學且c 年代久遠,所以考試的時候第一沒時間了,第二什麼都忘記了,浪費了不少時間,最只做出一道題,雖然非常丟人被朋友笑菜,但畢竟是值得紀念的一次,就將還記得的三道題寫在部落格上 可能我現在寫的 還是錯的,歡迎指正吶,比心 在一串字串中尋找sangfor的個數 如s...