題目:
給你乙份單詞表,和乙個句子。求出該句子能有多少種不同的劃分方法。例如:單詞是ab 、cd、 a、 b、 c、 d
句子是abcd。則共有 a/b/c/d、 ab/c/d、a/b/cd、ab/cd 四種。
定義狀態
例如在 abcd 中 ab為
故遞推式為:
這題 由於是採用 「逆臨邊「的形式 遞推,所以 很難列印出路徑。
code:
#include#include#include#include#include#include#include#include#includeusing namespace std;
const int n = 105;
string word[n];
string sentence;
int dp[n*10+5];
int main()
cin >> sentence;
fill(dp,dp+n,0);
dp[0] = 1; // 這裡關鍵
int len = sentence.size();
for(int i = 1; i <= len; ++i)}}
cout << dp[len] << endl;
return 0;
}
傳球遊戲(DP)
演算法訓練 傳球遊戲 時間限制 1.0s 記憶體限制 256.0mb 問題描述 上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學...
數字遊戲 (dp)
problem description 丁丁最近沉迷於乙個數字遊戲。這個遊戲看似簡單,但丁丁在研究了很多天之後卻發覺原來在簡單的規則下想要贏得這個遊戲並不那麼容易。遊戲是這樣的,在你面前有一圈整數 一共n個 你要按順序將其分為m個部分,各部分內的數字相加,相加後得的m個結果對10取模後再相乘,最終得...
DP 傳球遊戲
上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學中的乙個 左右任意 當老師再次吹哨子時,傳球停止,此時,拿著球沒傳出去的那個同學...