DP_紀念第一次寫出來dp
題意:
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<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
#include<queue>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<cstdlib>
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 5;
char s[maxn];
int dp[maxn];
bool check(int l,int r){
for(int i = l,j = r;i <= j;i++,j--){
if(s[i] != s[j]){
return false;
}
}
return true;
}
int main(){
scanf("%s",s + 1);
int len = strlen(s + 1);
memset(dp,0,sizeof(dp));
int ans = len;
for(int i = 1;i <= len;i++) dp[i] = i;
for(int i = 1;i <= len;i++){
for(int k = 1;k <= i;k++){
if(check(k,i)){
dp[i] = min(dp[i],dp[k - 1] + 1);
}
}
}
printf("%d\n",dp[len]);
return 0;
}
相關文章
- 紀念二姨父!
- Flutter 2.0釋出,全平臺執行已就緒,寫個Demo紀念一下!Flutter
- OMG !Gopher China 限量版紀念衫!他來了!Go
- 免費線上戀愛紀念日、結婚紀念日計算器
- 我的創作紀念日
- 合肥光源四十週年紀念
- dp套dp 隨寫
- [期望DP][紀中]【2010集訓隊出題】彩色圓環
- COBOL六十週年紀念:過去,現在和未來 -Vlad Mihalcea
- 紀念碑谷2(8-14章)
- 紀念幣有沒有收藏價值
- 第一次來部落格園寫隨筆
- 紀念DedeCMS創始人IT柏拉圖先生
- P5662 [CSP-J2019] 紀念品
- 第一個部落格,紀念一下
- 人民幣發行70週年紀念幣
- 人月神話(40週年中文紀念版)
- 紀鑫磊第一次作業
- Numerator:2022年紀念日消費者調查
- 入園第一天,聊作紀念
- 洛谷P1094 紀念品分組(Java)Java
- 本週大事記 | 9.18紀念日+安全播報
- 基於 Angular 開發的 紀念日計算工具Angular
- 改進《純數學教程(紀念版)》中的根式
- 城市未來碎碎念
- 英偉達釋出 RTX30 系列 ,紀念的是 21 年前的哪張神卡?
- 一切只為效能!名人堂十週年紀念版顯示卡正式釋出
- 這款新作釋出後,《紀念碑谷》開發商想在全世界種100萬棵樹
- 柏昊天榮獲上海市“白玉蘭紀念獎”
- WIN NFT HORSE推十二獸首紀念款NFT賽馬
- 2021 年:普通平凡而有紀念意義的一年
- HAL 研究所成立 40 週年紀念:像「星之卡比」一樣為玩家帶來笑容
- [下載]《看雪精華20週年紀念版》釋出!(含看雪論壇精華20)
- 日本森紀念財團:2022年全球城市實力指數
- 紀念小柴昌俊 | 中微子天體物理學的誕生
- 第一次寫部落格
- HTML5適合的情人節禮物有紀念日期功能HTML
- 紀念抗戰勝利75週年 | 勿忘國恥,珍愛和平