[SCOI 2003] 字符串折叠
2024-08-31 06:04:18
[题目链接]
https://www.lydsy.com/JudgeOnline/problem.php?id=1090
[算法]
区间DP
[代码]
#include<bits/stdc++.h>
using namespace std;
#define MAXN 110 int len;
int f[MAXN][MAXN];
char s[MAXN]; inline int calc(int x)
{
int ret = ;
while (x)
{
ret++;
x /= ;
}
return ret;
}
inline bool check(int l,int r,int pl,int pr)
{
int i;
if ((r - l + ) % (pr - pl + ) != ) return false;
for (i = l; i <= r; i++)
{
if (s[i] != s[(i - l) % (pr - pl + ) + pl])
return false;
}
return true;
}
inline int dp(int l,int r)
{
int i;
if (l == r) return f[l][r] = ;
if (f[l][r] != -) return f[l][r];
f[l][r] = r - l + ;
for (i = l; i < r; i++)
{
f[l][r] = min(f[l][r],dp(l,i) + dp(i + ,r));
if (check(i + ,r,l,i))
f[l][r] = min(f[l][r],dp(l,i) + calc((r - i) / (i - l + ) + ) + );
}
return f[l][r];
}
int main()
{ scanf("%s",s + );
len = strlen(s + );
memset(f,,sizeof(f));
printf("%d\n",dp(,len)); return ; }
最新文章
- 模仿mybatis,用jdk proxy实现接口
- 170106、用9种办法解决 JS 闭包经典面试题之 for 循环取 i
- jquery 获取浏览器可视窗口大小,滚动条高度
- 【CodeForces 596A】E - 特别水的题5-Wilbur and Swimming Pool
- Java当中的异常
- Jquery选择器,操作DOM
- HDOJ1021题 Fibonacci Again 应用求模公式
- C++虚函数及虚函数表解析
- UART串口协议基础1
- Hadoop安装教程
- noip普及组2004 花生采摘
- wpf通过VisualTreeHelper找到控件内所有CheckBox和TextBox并做相应绑定
- Oracle查询用户权限
- version.go
- js获取file控件的完整路径(上传图片预览)
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
- bzoj 2202 [HNOI2010] Bounce 弹飞绵羊(分块)
- Eureka (数学组合 + 斜率)
- phpMyadmin提权那些事
- 【转】linux中执行外部命令提示"; error while loading shared libraries";时的解决办法