题解:

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

然后对于区间[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. Tomcat下使用Log4j,按日期每天存放,解决catalina.out日志文件过大问题

    1. 准备jar包: log4j-1.2.17.jar (从 http://www.apache.org/dist/logging/log4j/1.2.17/ 下载) tomcat-juli.jar, ...

  2. Python3基础 生成器推导式 简单示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. 字符编码(ASCII、ANSI、GB2312、UTF-8等)系统梳理(转载)

    引言 在显示器上看见的文字.图片等信息在电脑里面其实并不是我们看见的样子,即使你知道所有信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片.假设,你用显微镜把盘片放大,会看见盘片表面凹凸不 ...

  4. 51nod 1051 最大子矩阵和

    没想到居然可以O(n3)暴力过 就是大概之前的  最大连续子序列和 加成2维度了  枚举起始列 和 终止列 然后计算从1到n行最大的子矩阵的和 注意n 和 m 的输入顺序!! #include< ...

  5. 使用PDFminer3k解析pdf为文字遇到:WARING:root:GBK-EUC-H

    最近需要把PDF解析为文字,查了查python的模块,发现PDFminer3k能满足需求.我使用的是 windows平台下的python3.6,python2的则下载pdfminer. 首先下载:直接 ...

  6. C#学习笔记(五):while循环和for循环

    while循环 while循环和for循环,可以相互替换,范围和效能一样,理解事物的逻辑不一样 while循环用于条件不确定的逻辑 for循环用于计算次数的逻辑 for循环 快捷写法,按两下TAB i ...

  7. 【Coursera】SecondWeek(1)

    全球互联网的始祖 APRANET APRANET 是 DARPA(美国国防部高级研究计划局) 开发的世界上第一个运营PacketSwitching(分包交换)的网络. 鉴于二战后世界格局两极化的历史背 ...

  8. MySQL数据库调优技巧

    原文链接:https://m.aliyun.com/bbs/read/300762.html MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它 ...

  9. 简单介绍tomcat中maxThreads,acceptCount,connectionTimeout

    <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOW ...

  10. 重新拾取的jquery

    最新JQ API学习地址:http://www.css88.com/jqapi-1.9/error/