博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1068: [SCOI2007]压缩
阅读量:4977 次
发布时间:2019-06-12

本文共 1174 字,大约阅读时间需要 3 分钟。

 

 

 

/**************************************************************    Problem: 1068    User: lxy8584099    Language: C++    Result: Accepted    Time:20 ms    Memory:900 kb****************************************************************/ /*    胡乱DP    hash    f i,j,k 表示 i~j 有没有M的最小长度     默认在i-1处有一个M    这样由子问题转到最后的问题 1-1即0处就存在一个M      这样操作不影响转移 */#include
#include
#define ll unsigned long longusing namespace std;const int N=100;ll B=233,base[N]={
1},s[N];char str[N];int f[N][N][2],n;int min(int a,int b) {
return a>b?b:a;} ll hash(int l,int r){    return s[r]-s[l-1]*base[r-l+1];}int main(){    memset(f,0x3f,sizeof(f));    scanf("%s",str+1);    n=strlen(str+1);    for(int i=1;i<=n;i++)    {        base[i]=base[i-1]*B;        s[i]=s[i-1]*B+str[i];    }    for(int i=n;i>=1;i--)    for(int j=i;j<=n;j++)    {        f[i][j][0]=f[i][j][1]=j-i+1;        for(int k=i;k
>1;        if((j-i+1)%2==0&&hash(i,mid)==hash(mid+1,j))            f[i][j][0]=f[i][mid][0]+1; // 需要一个R         //能缩就缩      }    printf("%d\n",min(f[1][n][0],f[1][n][1]));         return 0;}

 

转载于:https://www.cnblogs.com/lxy8584099/p/10313198.html

你可能感兴趣的文章
C# 中的委托和事件
查看>>
CSS基础学习 17.CSS动画
查看>>
ATM机
查看>>
java反射
查看>>
js表单反显
查看>>
浪潮之巅阅读笔记二
查看>>
CSS内嵌样式实现打字效果
查看>>
从 HTTP 到 HTTPS 再到 HSTS
查看>>
JavaScript进阶 从实现理解闭包
查看>>
oracle数据库关闭了打开数据库
查看>>
warning: the `gets' function is dangerous and should not be used.(转)
查看>>
进阶之路 - 000 目录
查看>>
asp.net实现 EXCEL数据导入到数据库功能
查看>>
Java之内部类
查看>>
NOIP201502扫雷游戏
查看>>
Unity编辑器扩展chapter1
查看>>
微信小程序 Image 图片实现宽度100%,高度自适应
查看>>
VNC Viewer
查看>>
我用windows live Writer 写个日志试试看
查看>>
线程安全日期格式化操作的几种方式
查看>>