惠州网站制作询问薇北京建网站的
news/
2025/9/25 1:39:10/
文章来源:
惠州网站制作询问薇,北京建网站的,移动互联网开发课程,重庆技术网站建设正题
题目链接:https://www.luogu.com.cn/problem/P4302 题目大意
一个字符串#xff0c;对于一个字符串AAA。可以将连续的nnn个AAA缩成n(A)n(A)n(A)。求最短的长度能够表述出给定字符串 解题思路
定义fi,jf_{i,j}fi,j表示表示出i∼ji\sim ji∼j的字符串的最短方法。那么…正题
题目链接:https://www.luogu.com.cn/problem/P4302 题目大意
一个字符串对于一个字符串AAA。可以将连续的nnn个AAA缩成n(A)n(A)n(A)。求最短的长度能够表述出给定字符串 解题思路
定义fi,jf_{i,j}fi,j表示表示出i∼ji\sim ji∼j的字符串的最短方法。那么不考虑折叠的话有正常区间dpdpdp转移即fi,jmin{fi,kfk1,j}(i≤kj)f_{i,j}min\{f_{i,k}f_{k1,j}\}(i\leq kj)fi,jmin{fi,kfk1,j}(i≤kj)
然后对于一段区间[l,r][l,r][l,r]考虑折叠我们枚举长度lenlenlen的约数kkk判断能否用长度为kkk的字符串折叠。有转移fi,jmin{fi,ik−12zlen/k}(k−[i,j])f_{i,j}min\{f_{i,ik-1}2z_{len/k}\}(k-[i,j])fi,jmin{fi,ik−12zlen/k}(k−[i,j])ziz_izi表示iii的位数
时间复杂度O(n3n)O(n^3\sqrt n)O(n3n) codecodecode
#includecstdio
#includecstring
#includealgorithm
using namespace std;
int n,z[110],f[110][110];
char s[110];
bool check(int l,int r,int len){if((r-l1)%len!0)return 0;for(int illen;ir;i)if(s[i-len]!s[i])return 0;return 1;
}
int main()
{scanf(%s,s1);nstrlen(s1);memset(f,0x3f,sizeof(f));for(int i1;in;i)z[i]z[i/10]1,f[i][i]1;for(int l2;ln;l){for(int i1;il-1n;i){int jil-1;for(int ki;kj;k)f[i][j]min(f[i][j],f[i][k]f[k1][j]);for(int k1;kl;k)if(check(i,j,k))f[i][j]min(f[i][j],f[i][ik-1]2z[l/k]);}}printf(%d,f[1][n]);
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916478.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!