BZOJ 1090: [SCOI2003]字符串折叠
2024-10-18 09:15:01
Sol
区间DP.
转移很简单,枚举会形成的断长转移就行,话说上一题我就跟这个是差不多的思路,转移改了改,然后死活过不了...
同样都是SCOI的题...相差4年...
Code
/**************************************************************
Problem: 1090
User: BeiYu
Language: C++
Result: Accepted
Time:20 ms
Memory:1332 kb
****************************************************************/ #include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; const int N = 105; char c[N];
int f[N][N]; int bit(int x){ if(x>=100) return 3;if(x>=10) return 2;return 1; }
int DP(int l,int r){
int &res=f[l][r];if(~res) return res;
if(l>r) return res=0;if(l==r) return res=1;int len=r-l+1;res=len;
for(int i=1;i<=len/2;i++) if(len%i==0){
int can=1;
for(int j=l+i;j<=r;j++) if(c[j]!=c[(j-l)%i+l]){ can=0;break; }
if(can) res=min(res,DP(l,l+i-1)+2+bit(len/i));
}for(int i=l;i<r;i++) res=min(res,DP(l,i)+DP(i+1,r));
return res;
} int main(){
scanf("%s",c+1);int n=strlen(c+1);memset(f,-1,sizeof(f));
cout<<DP(1,n)<<endl;
return 0;
}
最新文章
- 关于新书《修炼之道:.NET开发要点精讲》的各种说明
- javascript 随笔
- 开机自动连接/断开VPN 批处理
- android定位
- SQL SERVER2012中使用游标来备份数据库
- hibernate关于一对一用法
- 在英文 sql2005中 比较nvarchar 与 varchar的速度
- 什么是NSTimer
- BZOJ 1509: [NOI2003]逃学的小孩( 树形dp )
- 如何利用MongoDB打造TOP榜小程序
- redhat 7.5 更换 yum源
- hashcode和equals方法的区别和联系
- Echo团队团队展示
- CentOS7 下源代码安装apache2.4
- 编写hadoop程序,并打包jar到hadoop集群运行
- haproxy 同一域名下分发请求
- python __all__用法
- CFGym 100211J 题解
- acer笔记本禁用或关闭触摸板
- mybatis源码分析(5)-----拦截器的实现原理(动态代理+责任链)