日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codevs 1779 单词的划分

發布時間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codevs 1779 单词的划分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1779 單詞的劃分

?時間限制: 1 s

?空間限制: 128000 KB ?題目等級 : 黃金 Gold 題目描述?Description

Problem有一個很長的由小寫字母組成字符串。為了便于對這個字符串進行分析,需要將它劃分成若干個部分,每個部分稱為一個單詞。出于減少分析量的目的,我們希望劃分出的單詞數越少越好。Output一個整數,表示字符串可以被劃分成的最少的單詞數。

  • 應該加上一個前提題目中提供的字符串肯定能被劃分,否則輸出增加判斷語句。
輸入描述?Input Description

?從文本文件word.in中讀入數據。第一行,一個字符串。(字符串的長度不超過100),第二行一個整數n,表示單詞的個數。(n<=100),第3~n+2行,每行列出一個單詞。

輸出描述?Output Description

?一個整數,表示字符串可以被劃分成的最少的單詞數。

樣例輸入?Sample Input

realityour
5
real
reality
it
your
our

樣例輸出?Sample Output

2

數據范圍及提示?Data Size & Hint

(原字符串可拆成real+it+your或reality+our,由于reality+our僅為兩個部分,因此最優解為2,另外注意,單詞列表中的每個單詞都可以重復使用多次,也可以不用)

?

1 /*基本思路:p[i][j]數組儲存著從i--j這個區間內,能不能劃分為一個單詞,是1,否則一個大數 2 DP方程:f[i]=min(f[i],f[t]+p[t+1][i]);f[i]儲存著到1---i為止可以 劃分的單詞的最小數目, 3 t從0到i--1枚舉,f[t]前t位,p數組表示吧t+1--i當做一個單詞 4 5 注意:substr函數的使用a.substr(i,l),表示把a字符串從第i位開始,切割l位形成的一個字符串 6 */ 7 #include<iostream> 8 using namespace std; 9 #include<cstdio> 10 #include<string> 11 #include<cstring> 12 #define N 101 13 int p[N][N],f[N],lena; 14 string a,b[N]; 15 int n; 16 void input() 17 { 18 cin>>a; 19 scanf("%d",&n); 20 for(int i=1;i<=n;++i) 21 cin>>b[i]; 22 } 23 void ZB() 24 { 25 /* memset(p,99,sizeof(p));這一句賦值超大數是不對的,DP方程中會使int類型越界,所以題目中賦值最大根據題意,不要出現越界的情況,這個題p[][]=1000就足夠大了*/ 26 lena=a.length(); 27 for(int i=0;i<lena;++i) 28 for(int j=i;j<lena;++j) 29 { 30 int l=j-i+1; 31 for(int k=1;k<=n;++k) 32 if(a.substr(i,l)==b[k]) 33 { 34 p[i][j]=1; 35 break; 36 } 37 else { 38 p[i][j]=1001; 39 } 40 } 41 } 42 void DP() 43 { 44 for(int i=0;i<lena;++i) 45 f[i]=p[0][i]; 46 for(int i=1;i<lena;++i) 47 for(int t=0;t<=i-1;++t) 48 f[i]=min(f[i],f[t]+p[t+1][i]); 49 } 50 int main() 51 { 52 input(); 53 ZB(); 54 DP(); 55 cout<<f[lena-1]; 56 return 0; 57 } View Code

?

轉載于:https://www.cnblogs.com/c1299401227/p/5313587.html

總結

以上是生活随笔為你收集整理的codevs 1779 单词的划分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。