51nod1537
题解:
预处理每一个要变换几次,然后改成每一个要改变的次数-上一个要改变的次数
然后对于区间[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的更多相关文章
- 51nod-1537 1537 分解(矩阵快速幂+找规律)
题目链接: 1537 分解 问(1+sqrt(2)) ^n 能否分解成 sqrt(m) +sqrt(m-1)的形式 如果可以 输出 m%1e9+7 否则 输出no Input 一行,一个数n.( ...
- [51NOD1537] 分解(递推,矩阵快速幂)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1537 思路:一开始用二项式拆了一下,发现这个式子的形式总能变成 ...
- 51nod1537 分解
http://blog.csdn.net/qingshui23/article/details/52350523 详细题解%%%%对矩阵乘法的不熟悉.以及不会推公式 #include<cstdi ...
随机推荐
- C++ Compress Floder
第三方函数.头文件.测试工程下载地址:http://download.csdn.net/detail/u012958937/8361733
- 关于Session的概念和测试点
Session概要 Session 是用于保持状态的基于 Web 服务器的方法,在 Web 服务器上保持用户的状态信息供在任何时间从任何页访问. Session 允许通过将对象存储在 Web 服务器的 ...
- JavaScript:Object属性方法
Object的属性(firebug中没有找到) var pro={ city:"shanghai", list:[,,,,] } var Person=function(name, ...
- HDU 6128 Inverse of sum(同余)
http://acm.hdu.edu.cn/showproblem.php?pid=6128 题意:有一个a数列,并且每个数都小于p,现在要求有多少对$(i,j)$满足$\frac{1}{a_i+a_ ...
- UVa 10340 子序列
https://vjudge.net/problem/UVA-10340 题意: 输入两个字符串s和t,判断是否可以从t中删除0个或多个字符得到字符串s. 思路: 很水的题... #include&l ...
- JMeter源码导入到Intellij IDEA
环境: Windows10,jdk1.8,Intellij IDEA 2018.1.5 x64,apache-jmeter-4.0_src.zip http://jmeter.apache.org/ ...
- 关于nohup 和 &的使用
nohup 是 no hang up 的缩写,意思是不挂断运行,一直运行下去,永久运行下去,但是注意并没有后台运行的功能 & 是在后台运行的意思 单独使用一个命令,还不能在终端关闭的时候,让 ...
- 如何上传本地文件到github又如何删除自己的github仓库
首先自己在https://github.com/网站要注册一个账户 自己上传工程到jithub,没有付费的用户只能选用public,意味着你的项目在全网是可以被看到和下载的: 所以涉及私密信息的,需要 ...
- Python day20正则表达式和re方法
元字符6个函数以及几个元字符1.'.'通配符2.'^'以什么开头3.'$'以什么结尾4.'*'紧挨着的字符0~∞次5.'+'紧挨着的字符1~∞次6.'?'紧挨的字符0次或1次7.'{}' {0,}== ...
- 关于c#除法运算的问题
https://blog.csdn.net/yxt1522916229/article/details/51107569/ 下面的示例可以验证一下问题: 例如: int m = 2; ...