Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
贴个代码备忘#include <iostream> #include <string> #include <memory.h> using namespace std; int wordnum; int sentencelength; string sentence; string dict[601]; int dp[601]; int main() { cin>>wordnum>>sentencelength; cin>>sentence; for(int i=1;i<=wordnum;i++) { cin>>dict[i]; } memset(dp,0,sizeof(dp)); for(int i=sentencelength-1;i>=0;i--) { dp[i]=dp[i+1]+1; for(int j=1;j<=wordnum;j++) { string word=dict[j]; if(sentencelength-i>=word.length()) { //开始匹配 int m,n; m=i;//从主串开始找,直到sentencelength n=0;//从word开始找,直到word.length() while(m<=sentencelength-1&&n<=word.length()-1) { if(sentence[m]==word[n]) { m++; n++; } else m++; } if(n==word.length()&&dp[i]>dp[m]-i+m-word.length()) { dp[i]=dp[m]-i+m-word.length(); } } } } cout<<dp[0]<<endl; //system("pause"); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator