数目nullRQNOJ-302-统计单词个数--区域dp
生活随笔
收集整理的這篇文章主要介紹了
数目nullRQNOJ-302-统计单词个数--区域dp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
改章節是一篇關于數目null的帖子
????思路:
????s[i][j]: 在i到j的區間內,有以i掃尾的字典則為1,否則,為0
????sum[i][j]: 在i到j的區間內所包容的字典的數目
????if(s[i][j]==1)sum[i][j]=sum[i+1][j]+1;
????else sun[i][j]=sum[i+1][j];
????dp[i][j]: 表示在0~j的區間內,分紅i份,所包含的字典的總和。
????dp[i][j]=dp[i-1][k]+sum[k+1][j](i-2<=k<j)
????dp[1][j]=sum[1][j];
每日一道理信念是巍巍大廈的棟梁,沒有它,就只是一堆散亂的磚瓦;信念是滔滔大江的河床,沒有它,就只有一片泛濫的波浪;信念是熊熊烈火的引星,沒有它,就只有一把冰冷的柴把;信念是遠洋巨輪的主機,沒有它,就只剩下癱瘓的巨架。
#include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> #include<queue> #include<stack> #include<map> #include<string> #include<stdlib.h> #define INF_MAX 0x7fffffff #define INF 999999 #define max3(a,b,c) (max(a,b)>c?max(a,b):c) #define min3(a,b,c) (min(a,b)<c?min(a,b):c) #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; struct node {int u;int v;int w;bool friend operator < (node a, node b){return a.w < b.w;} }edge[1001]; int gcd(int n,int m){if(n<m) swap(n,m);return n%m==0?m:gcd(m,n%m);} int lcm(int n,int m){if(n<m) swap(n,m);return n/gcd(n,m)*m;} char dic[10][201]; char str[201]; char st[21]; int sum[201][201]; int s[201][201]; int p,k,ss; int main() {int i,j,n;scanf("%d%d%*c",&p,&k);for(i=0;i<p;i++){gets(st);for(j=i*20;j<i*20+20;j++){str[j]=st[j-i*20];}}n=p*20;scanf("%d%*c",&ss);for(i=0;i<ss;i++){gets(dic[i]);}int mi,is,ks;for(i=0;i<n;i++){mi=n;for(j=0;j<ss;j++){if(str[i]==dic[j][0]){for(ks=0;ks<strlen(dic[j])&&(i+ks)<n;ks++){if(str[ks+i]!=dic[j][ks])break;}if(ks==strlen(dic[j]))mi=min(mi,i+ks-1);}}for(is=mi;is<n;is++){s[i][is]=1;}}for(i=0;i<n;i++)sum[n-1][i]=s[n-1][i];for(i=n-2;i>=0;i--){for(j=i;j<n;j++){if(s[i][j]==1)sum[i][j]=sum[i+1][j]+1;else sum[i][j]=sum[i+1][j];}}int dp[10][201];/* for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%2d ",sum[i][j]);}puts("");}*/for(i=0;i<n;i++){dp[1][i]=sum[0][i];}for(i=2;i<=k;i++){for(j=0;j<n;j++){dp[i][j]=0;for(ks=i-2;ks<j;ks++){dp[i][j]=max(dp[i][j],dp[i-1][ks]+sum[ks+1][j]);}}}cout<<dp[k][n-1]<<endl;return 0; }
文章結束給大家分享下程序員的一些笑話語錄: 一個合格的程序員是不會寫出 諸如 “摧毀地球” 這樣的程序的,他們會寫一個函數叫 “摧毀行星”而把地球當一個參數傳進去。
總結
以上是生活随笔為你收集整理的数目nullRQNOJ-302-统计单词个数--区域dp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学符号大全
- 下一篇: 变量绑定对话框控件不同类型成员变量的绑定