zoukankan      html  css  js  c++  java
  • Codeforces Round #207 (Div. 1) B (gcd的巧妙运用)

     比赛的时候不知道怎么写。。。 太弱了。

    看了别人的代码,觉得这个是个经典的知识点吧。 gcd的巧妙运用

    自己想的时候苦苦思考怎么用dp求解。 无奈字符串太长而想不出好的算法。 

    其实在把a和b字符串都分成以gcd(a,b)长度为单位的字符串时。 设为la=a/gcd(a,b) ,lb=b/gcd(a,b) . 明显可以知道的是gcd(la,lb)==1, 所以la与lb长度的字符串要分别拼接lb和la次才能拼成两个相等的串. 这样就有了解法. 

         for(int i=0;i<lena;i++)
    	  dpa[i%k][a[i]-'a']++; // 统计在a串 在gcd(a,b)长度某一位含一种字母的个数
    	for(int i=0;i<lenb;i++)
    	  dpb[i%k][b[i]-'a']++;
    	long long sum=0;
    	for(int i=0;i<k;i++)
    	  for(int j=0;j<26;j++)
    	  {
    		sum += (long long)dpa[i][j]*(long long )dpb[i][j]; //直接相乘就是相同的个数和了
      }

      

    B. Xenia and Hamming
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Xenia is an amateur programmer. Today on the IT lesson she learned about the Hamming distance.

    The Hamming distance between two strings s = s1s2... sn and t = t1t2... tn of equal length n is value . Record [si ≠ ti] is the Iverson notation and represents the following: if si ≠ ti, it is one, otherwise — zero.

    Now Xenia wants to calculate the Hamming distance between two long strings a and b. The first string a is the concatenation of n copies of string x, that is, . The second string b is the concatenation of m copies of string y.

    Help Xenia, calculate the required Hamming distance, given n, x, m, y.

    Input

    The first line contains two integers n and m (1 ≤ n, m ≤ 1012). The second line contains a non-empty string x. The third line contains a non-empty string y. Both strings consist of at most 106 lowercase English letters.

    It is guaranteed that strings a and b that you obtain from the input have the same length.

    Output

    Print a single integer — the required Hamming distance.

    Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cincout streams or the %I64dspecifier.

    Sample test(s)
    input
    100 10
    a
    aaaaaaaaaa
    output
    0
    input
    1 1
    abacaba
    abzczzz
    output
    4
    input
    2 3
    rzr
    az
    output
    5
    Note

    In the first test case string a is the same as string b and equals 100 letters a. As both strings are equal, the Hamming distance between them is zero.

    In the second test case strings a and b differ in their 3-rd, 5-th, 6-th and 7-th characters. Thus, the Hamming distance equals 4.

    In the third test case string a is rzrrzr and string b is azazaz. The strings differ in all characters apart for the second one, the Hamming distance between them equals 5.

  • 相关阅读:
    [转]document对象execCommand的命令参数介绍
    Windows蓝屏说明
    PHP手册下载
    编写简单的代码生成工具
    EXCEL中标记两列中都存在的数据,过滤B列中存在A列中不存在的数据[原创]
    SC Create 添加服务不成功(总弹帮助信息)的原因[转]
    Excel中删除两列中重复的数据[原创]
    禁止更改桌面背景及活动桌面的批处理_最终版[原创]
    EXCEL中自动检测当前单元格或上一单元格在列A中是否存在相同数据[原创]
    EXCEL中避免同一列及相邻列中出现重复数据[原创]
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/3372355.html
Copyright © 2011-2022 走看看