求调D,WA*3

学术版

```cpp #include<bits/stdc++.h> #define ll long long using namespace std; char t[110]; int n; int a[110]; char s[110][20][20]; int dp[110][110]={0}; int len; int main() { cin>>t>>n; len=strlen(t); for(int i=1;i<=n;i++) { cin>>a[i]; for(int j=1;j<=a[i];j++) cin>>s[i][j]; } for(register int i=0;i<=n;i++) for(int j=1;j<=len;j++) dp[i][j]=1e9; for(int i=1;i<=n;i++) { for(int j=1;j<=a[i];j++) { int cd=strlen(s[i][j]); if(cd>len) continue; for(int k=0;k<=len;k++) { dp[i][k]=min(dp[i][k],dp[i-1][k]); int f=1; for(int l=1;l<=cd;l++) { if(s[i][j][l-1]!=t[k+l-1]) { f=0; break; } } if(!f) continue; dp[i][k+cd]=min(dp[i-1][k]+1,dp[i][k+cd]); } } } if(dp[n][len]==1e9) printf("-1"); else printf("%d",dp[n][len]); return 0; } ```
by what_can_I_do @ 2024-03-09 21:43:48


|