[SCOI2003]字符串折叠

一道蛮好玩的区间DP。。。其实只要做好check。。。然后统计答案就好了。。。QAQ。。。
呆码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; char ch[];
int n,f[][]; inline bool check(int x1,int y1,int x2,int y2)
{
if((y2-x1+)%(y1-x1+)!=) return ;
int len=y1-x1+;
for(int i=x2;i<=y2;i++)
if(ch[i-len]!=ch[i])
return ;
return ;
} inline int num(int x)
{
int sum=;
while(x)
{
sum++;
x/=;
}
return sum;
} int main()
{
scanf("%s",ch+);
n=strlen(ch+);
for(int i=;i<=n;i++) f[i][i]=;
for(int i=n-;i>=;i--)
for(int j=i+;j<=n;j++)
{
f[i][j]=j-i+;
for(int k=i;k<=j;k++)
{
if(check(i,k,k+,j)) f[i][j]=min(f[i][j],f[i][k]++num((j-i+)/(k-i+)));
else f[i][j]=min(f[i][j],f[i][k]+f[k+][j]);
}
}
printf("%d\n",f[][n]);
}
代码
[SCOI2003]字符串折叠的更多相关文章
- BZOJ1090: [SCOI2003]字符串折叠
区间dp. 一种是分段dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]); 一种是这一段可以缩写dp[i][j]=min(dp[i][j],dp[i][l]+2+ca ...
- BZOJ 1090: [SCOI2003]字符串折叠 区间DP
1090: [SCOI2003]字符串折叠 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- 【BZOJ1090】[SCOI2003]字符串折叠(动态规划)
[BZOJ1090][SCOI2003]字符串折叠(动态规划) 题面 BZOJ 洛谷 题解 区间\(dp\).设\(f[i][j]\)表示压缩\([i,j]\)区间的最小长度.显然可以枚举端点转移.再 ...
- 【bzoj1090】 [SCOI2003]字符串折叠
[bzoj1090] [SCOI2003]字符串折叠 2014年3月9日3,1140 Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S S 2. X(S)是X ...
- [SCOI2003]字符串折叠(区间dp)
P4302 [SCOI2003]字符串折叠 题目描述 折叠的定义如下: 一个字符串可以看成它自身的折叠.记作S = S X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S) = SSSS ...
- [bzoj1090][SCOI2003]字符串折叠_区间dp
字符串折叠 bzoj-1090 SCOI-2003 题目大意:我说不明白...链接 注释:自己看 想法:动态规划 状态:dp[i][j]表示从第i个字符到第j个字符折叠后的最短长度. 转移:dp[l] ...
- bzoj 1090 [SCOI2003]字符串折叠(区间DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1090 [题意] 给定一个字符串,问将字符串折叠后的最小长度. [思路] 设f[i][j ...
- 【BZOJ】1090: [SCOI2003]字符串折叠(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1090 随便yy一下.. 设f[i,j]表示i-j的最小长度 f[i, j]=min{j-i+1, f ...
- 【BZOJ 1090】[SCOI2003]字符串折叠
Description 折 叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S S 2. X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S) SSSS…S(X个S). ...
- BZOJ1090 [SCOI2003]字符串折叠 区间动态规划 字符串
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1090 题意概括 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S 2. X(S)是X ...
随机推荐
- 【HNOI 2016】序列
Problem Description 给定长度为 \(n\) 的序列:\(a_1, a_2, \cdots , a_n\),记为 \(a[1 \colon n]\).类似地,\(a[l \colon ...
- 小程序配置tabbar
app.json中添加tabbar "tabBar": { "color": "#a9b7b7", //未选中字体颜色 "sele ...
- python 在字典中添加键值对的方法。
list 添加元素的方法是 list.append(a).将 a 添加到 list 里. dict 添加元素的方法是 dict.update(dict2).意为,将 dict2 的内容添加到 di ...
- 关于Ocelot和Consul 实现GateWay(网关) 服务注册 负载均衡等方面
Ocelot 路由 请求聚合 服务发现 认证 鉴权 限流熔断 内置负载均衡器 Consul 自动服务发现 健康检查 通过Ocelot搭建API网关 服务注册 负载均衡 1. ...
- Shopping List
剃须啫喱 吉列 70g $22.00 鲁阳家居专营店 剃须水套装 阿帕奇+酷曼 230g+230g $16.80(限时活动) 鲁阳家居专营店 鸡胸肉 撸铁党 100gx9+100g $49.9(限时活 ...
- NetSec2019 20165327 exp1+ 逆向进阶
NetSec2019 20165327 exp1+ 一.实验内容介绍 第一个实践是在非常简单的一个预设条件下完成的: (1)关闭堆栈保护 (2)关闭堆栈执行保护 (3)关闭地址随机化 (4)在x32环 ...
- Python自学:第三章 使用方法sort( )对列表进行永久性排序
cars = ["bmw", "audi", "toyota", "subaru"] cars.sort() print ...
- 使用 requests 模块
官网:http://docs.python-requests.org/en/master/ 请求方式 requests.get() requests.post() requests.put() req ...
- hbase-0.92.1过滤器学习
查看当前hbase中支持的过滤器 hbase(main):060:0* show_filters Documentation on filters mentioned below can be fou ...
- MHA实现MySQL的高可用
一:软件简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件. 在 ...