题目:

http://codeforces.com/contest/608/problem/B

字符串a和字符串b进行比较,以题目中的第一个样例为例,我刚开始的想法是拿01与00、01、11、11从左到右挨个比较,希望能找到一些规律,结果并没有。。。

其实,如果我们能从整个比较过程来看这个问题,整个过程就没有那么难。题目要求的东西,其实就是a字符串和b字符串子串每次比较的不同的个数的总和,当我们像上面那个思路,拿a字符串每次移动一位,和b进行比较的时候,从整个过程来看,就相当于a的每一个元素从前往后和b比较不同的个数,再把每个元素的不同个数相加。

a中元素与b中比较并不是完全从前往后比,而是,对于a中第i个元素来说,他在b中也是从i个位置开始比较。比较区间的右端是len_b-len_a+i,这是因为,a与b最后一个子串的比较,一定是从len_b-len_a这个位置开始到最后,加上i就是比较到最后一个子串中i的位置。

另外,这道题用到了前缀和的技巧,就可以用O(a+b)的复杂度解决。

 #include<stdio.h>
#include<string.h>
#define maxn 200005
char a[maxn],b[maxn] ;
int f[maxn][];
int main(){
scanf(" %s %s",a+,b+);
int lena = strlen(a+);
int lenb = strlen(b+);
for(int i = ;i<=lenb;i++){
f[i][] = f[i-][];
f[i][] = f[i-][];
f[i][b[i]-'']++;
}
long long ans = ;
for(int i = ;i<=lena;i++){
int l = i-,r = lenb-lena+i;
if(a[i]=='')
ans += f[r][]-f[l][];
else
ans += f[r][]-f[l][];
}
printf("%lld\n",ans);
return ;
}

Codeforces Round #336 Hamming Distance Sum的更多相关文章

  1. Codeforces Round #336 (Div. 2)B. Hamming Distance Sum 前缀和

    B. Hamming Distance Sum 题目连接: http://www.codeforces.com/contest/608/problem/A Description Genos need ...

  2. Codeforces Round #336 (Div. 2) B. Hamming Distance Sum 计算答案贡献+前缀和

    B. Hamming Distance Sum   Genos needs your help. He was asked to solve the following programming pro ...

  3. Codeforces 608B. Hamming Distance Sum 模拟

    B. Hamming Distance Sum time limit per test: 2 seconds memory limit per test:256 megabytes input: st ...

  4. Codeforces Round #336 (Div. 2)【A.思维,暴力,B.字符串,暴搜,前缀和,C.暴力,D,区间dp,E,字符串,数学】

    A. Saitama Destroys Hotel time limit per test:1 second memory limit per test:256 megabytes input:sta ...

  5. Codeforces Round #336 (Div. 2)

    水 A - Saitama Destroys Hotel 简单的模拟,小贪心.其实只要求max (ans, t + f); #include <bits/stdc++.h> using n ...

  6. Codeforces Round #336 (Div. 2) D. Zuma

    Codeforces Round #336 (Div. 2) D. Zuma 题意:输入一个字符串:每次消去一个回文串,问最少消去的次数为多少? 思路:一般对于可以从中间操作的,一般看成是从头开始(因 ...

  7. Codeforces Round #336 (Div. 2)B 暴力 C dp D 区间dp

    B. Hamming Distance Sum time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  8. Codeforces 608 B. Hamming Distance Sum-前缀和

      B. Hamming Distance Sum   time limit per test 2 seconds memory limit per test 256 megabytes input ...

  9. Educational Codeforces Round 53 E. Segment Sum(数位DP)

    Educational Codeforces Round 53 E. Segment Sum 题意: 问[L,R]区间内有多少个数满足:其由不超过k种数字构成. 思路: 数位DP裸题,也比较好想.由于 ...

随机推荐

  1. Linux学习之CentOS--CentOS6.下Mysql数据库的安装与配置

    跟着配置,顺利配置完成 http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html

  2. web中异步和同步的理解

    普通的B/S模式就是同步,而AJAX技术就是异步,当然XMLHttpReques有同步的选项. 同步:提交请求->等待服务器处理->处理完毕返回.这个期间客户端浏览器不能干任何事. 异步: ...

  3. BZOJ3557: [Ctsc2014]随机数

    orz神犇们 clj(pw CCfCtsC2014) zyh cjj pyx vfk 吐槽一句对拍的时候发现这几份代码输出不一样. 每个数看成模2意义下的多项式: \[M_k\equiv x^kM_0 ...

  4. Centos: 修改 yum安装的mysql路径

    1.使用命令service mysqld stop 停止mysql查看mysql数据库的默认路径:/var/lib/mysql使用cp -afir  /var/lib/mysql/*   /usr/l ...

  5. SortedMap接口

    SortedMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类,TreeMap也是此接口的一个子类. import java.util.Map; import java.util.Sor ...

  6. C#----Get和Set在属性中的使用

    Get和Set在属性中的作用: 第一个作用:保证数据的安全性,对字段进行了有效的保护. 第二个作用:起到监视作用 private int width=0; public int Width { get ...

  7. robots.txt的介绍和写作

    目前很多网站管理者似乎对robots.txt并没有引起多大重视,甚至不知道这么一个文件的作用.本来应该保密的信息被爬虫抓取了,公布在公网上,本应该发布到公网的信息却迟迟不被搜索引擎收录.所以下面这篇文 ...

  8. Autofac IContainer 测试

    using Autofac; using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  9. JSP-Servlet的工作流程

    Servlet基础 1.Servlet概述 JSP的前身就是Servlet.Servlet就是在服务器端运行的一段小程序.一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问 ...

  10. ASP.NET Padding Oracle Attack EXP

    #!/usr/bin/perl## PadBuster v0.3 - Automated script for performing Padding Oracle attacks# Brian Hol ...