题解:

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

然后对于区间[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. ArrayList初始化的4种方法

    In the last post we discussed about class ArrayList in Javaand it’s important methods. Here we are s ...

  2. 如何Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

  3. Java8中数据流的使用

    Code: @Data @ToString @NoArgsConstructor @AllArgsConstructor public class Employee { private Integer ...

  4. SPOJ ADAFIELD Ada and Field(STL的使用:set,multiset,map的迭代器)题解

    题意:n*m的方格,“0 x”表示x轴在x位置切一刀,“0 y”表示y轴在y位置切一刀,每次操作后输出当前面积最大矩形. 思路:用set分别储存x轴y轴分割的点,用multiset(可重复)储存x轴y ...

  5. CMD与AMD区别

  6. 使用caffe训练自己的图像数据(未完)

    参考博客:blog.csdn.net/drrlalala/article/details/47274549 1,首先在网上下载图片,猫和狗.直接保存下载该网页,会生成一个有图片的文件夹.caffe-m ...

  7. H5图片预览、压缩、上传

    目标实现: 1.选择图片, 前端预览效果 2.图片大于1.2M的时候, 对图片进行压缩 3.以表单的形式上传图片 4.图片删除 预览效果图: 代码说明: 1.input:file选择图片 <!- ...

  8. hdu 5651 xiaoxin juju needs help 逆元 两种求解方式

    xiaoxin juju needs help Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...

  9. Bata冲刺 第一天

    一.冲刺第一天完成任务情况及贡献小时数: 姓名 今日已完成任务 时间(h) 马仲山 代码调整 2 马婧(12) 整理需求文档 2 马婧(13) 整理设计文档 2 马世芳 编写测试文档 2 张俊逸   ...

  10. c++ primer plus 第三章 课后题答案

    #include<iostream> using namespace std; int main() { ; int shen_gao; cout <<"Please ...