有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。
出於減少分析量的目的,我們希望劃分出的單詞數越少越好。你就是來完成這一劃分工作的。
第一行為一整數 t,表示有 t 組測試資料。
每組測試資料第一行為一字串。(長度小於 256)
第二行為一整數 n。(1<=n<=100)
以下 n 行,每行乙個單詞,每個單詞長度小於 128。
每組測試資料佔一行 , 這一行只有乙個整數,表示字串可以被劃分成的最少的單詞數。我們保證單詞是可劃分的。
input思路:遍歷字串,尋找以當前字母結尾時的子串所能拆分的最少單詞數,轉移方程:dp[i] = min(dp[i], dp[i-word.length()]+1) ,注意處理各種邊界條件。實現的過程中用map建立了乙個雜湊表,將每個單詞的最後乙個字母作為索引,將所有單詞整理成wordlist方便查詢。**實現如下:1outputrealityour
5real
reality
ityour
our
2
#include #include #include #include using namespace std;
int main()
); }
else
/*建雜湊表*/
}for(int i=0; i0 ? dp[i-1] : 0;//則能拆分的單詞數不變
}else}}
}}
}cout<}
return 0;
}
單詞的劃分
單詞的劃分 time limit 1s memory limit 1000k total submit 2558 accepted 1134 有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。出於減少分析量的目的,我們希望劃分出的單詞數越少越...
單詞的劃分
有乙個很長的由小寫字母組成的字串。為了便於對這個字串進行分析,需要將它劃分成若干部分,每部分稱為乙個單詞。出於減少分析量的目的,希望劃分出的單詞數越少越好。第1行1個字串,長度不超過100。第2行1個整數n,表示單詞的個數,n 100。第3 n 2行,每行列出1個單詞。一行乙個正整數,表示字串可以被...
DP 單詞的劃分
題目描述 有乙個很長的由小寫字母組成字串。為了便於對這個字串進行分析,需要將它劃分成若干個部分,每個部分稱為乙個單詞。出於減少分析量的目的,我們希望劃分出的單詞數越少越好。你就是來完成這一劃分工作的。輸入 第一行,乙個字串。字串的長度不超過300 第二行乙個整數n,表示單詞的個數。n 100 第3 ...