70分求助!!!

P1435 [IOI2000] 回文字串

@[tyh18696696627](/user/705729) ~~这道题目其实是我们老师给我们考试题的弱化版~~ ```c #include <bits/stdc++.h> using namespace std; char a[100010],b[100010],x; int dp[2][100010],len=0,now=0,last=1; int main(){ while(cin>>x){ len++; a[len]=x; b[len]=a[len]; } reverse(b+1,b+len+1); memset(dp,0,sizeof(dp)); int maxs=0; for(int i=1;i<=len;i++){ swap(now,last); for(int j=1;j<=len;j++){ if(a[i]==b[j]) dp[now][j]=dp[last][j-1]+1; else dp[now][j]=max(dp[last][j],dp[now][j-1]); } } cout<<len-dp[now][len]; return 0; } ``` 我是用了滚动数组来优化的,其实也不用;只不过我们老师的那道题目,l<=1e5。
by zjinze @ 2023-08-22 16:58:45


_打错了,是l<=1e4_
by zjinze @ 2023-08-22 20:56:00


|