题解:

预处理每一个要变换几次,然后改成每一个要改变的次数-上一个要改变的次数

然后对于区间[l,r]修改,就是l++,r+1++

dp即可(据说可以o(n))

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int a[N],add[N],Dec[N],pr[N],Aft[N],f[N*],n,m;
char s[N],t[N];
int read()
{
char rx=getchar();
int ra=;
for(;rx<''&&rx!='-';rx=getchar());
for(;rx>=''&&rx<='';ra=ra*+rx-,rx=getchar());
return ra;
}
int MOD(int x)
{
return x<?x+:x>?x-:x;
}
int main()
{
for(int T=read();T;T--)
{
scanf("%s%s",s+,t+);
n=strlen(s+);
for(int i=;i<=n;i++)
{
a[i]=MOD(t[i]-s[i]);
add[i]=MOD(a[i]-a[i-]);
Dec[i]=-add[i];
pr[i]=pr[i-]+add[i];
}
for(int i=n;i;i--)
Aft[i]=Aft[i+]+Dec[i];
memset(f,,(pr[n]+)<<);
f[]=;
for(int i=;i<=n;i++)
if(add[i])
{
int tmp=Dec[i],j,k;
for(j=pr[i],k=j-add[i];k>=;j--,k--)
f[j]=min(f[j]+tmp,f[k]);
while(j>=)f[j--]+=tmp;
}
int ans=1e9;
for(int i=;i<=pr[n]&&i<ans;i++)
ans=min(ans,max(i,f[i]));
printf("%d\n",ans);
}
}

51nod1537的更多相关文章

  1. 51nod-1537 1537 分解(矩阵快速幂+找规律)

    题目链接: 1537 分解  问(1+sqrt(2)) ^n  能否分解成 sqrt(m) +sqrt(m-1)的形式  如果可以 输出 m%1e9+7 否则 输出no Input 一行,一个数n.( ...

  2. [51NOD1537] 分解(递推,矩阵快速幂)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1537 思路:一开始用二项式拆了一下,发现这个式子的形式总能变成 ...

  3. 51nod1537 分解

    http://blog.csdn.net/qingshui23/article/details/52350523 详细题解%%%%对矩阵乘法的不熟悉.以及不会推公式 #include<cstdi ...

随机推荐

  1. fatal One or more refs for names blocks change upload

    前言 今天在提代码时,发现push不到gerrit仓库了,十分的奇怪,和同事沟通后发现,同事可以直接git push origin master而且也可以合并,都是没有问题的,但是就是在gerrit上 ...

  2. C简介与环境配置

    C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的.C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现. 在 1978 年,布莱 ...

  3. swift设计模式学习 - 模板方法模式

    移动端访问不佳,请访问我的个人博客 设计模式学习的demo地址,欢迎大家学习交流 模板方法模式 模板方法模式,定义一个操作中算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结 ...

  4. CodeForces 1029E div3

    题目链接 第一道场上自己做出来的E题...虽然是div3,而且是原题... 当时做完ABC,D题没有思路就去怼E了,然后发现貌似原题? 事实上就是原题... 给个原题链接... [HNOI2003]消 ...

  5. Linux的内存分页管理【转】

    内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念. 内存 简单地说,内存就是一个数据货架.内存 ...

  6. HDU 6072 Logical Chain(Kosaraju+bitset)

    http://acm.hdu.edu.cn/showproblem.php?pid=6072 题意: 给你$n*n$的矩阵,每次修改k条边,让你计算其中能相互到达的点对有多少. 思路: 其实就是求强连 ...

  7. Phpstorm配置scss不生成缓存

    --no-cache 加上这个,就不会生成 .sass-cache 文件夹了.

  8. node 工程化 web项目

    1.结构 node_modules   ( ... ) routers     ( main.js  ) views    ( index.html   about.HTML  404.html ) ...

  9. 页面资源缓存 html css js

    html <meta http-equiv="Expires" content="0"><meta http-equiv="Prag ...

  10. Android scrollview和GridView混合使用

    在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全.解决办法,自定义一个GridView控件 p ...