zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 102 (Rated for Div. 2)B. String LCM

    B. String LCM

    题目分析

    题意:比较两组字符串之间是否存在”“字符串最小公倍数”“, 如果存在就输出”“字符串最小公倍数”“, 不存在则输出-1

    所谓“字符串最小公倍数”,这里举几个例子来理解一下定义:

    • ababaababab有“字符串最小公倍数”abababababab

    • aaaaaaa有“字符串最小公倍数”aaaaaaaaaaaa

    • ababaaba没有“字符串最小公倍数”

    • ababaab没有“字符串最小公倍数”

    所以,我们可以先按照“字符串最小公倍数”的长度,用他们自身来各自构造两个字符串的相等,如果构造的字符串相等,那么构造出来的两个字符串就是他们的“字符串最小公倍数”,如果不相等则就直接输出-1。

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    #define gcd(a, b) __gcd(a, b)
    
    int t;
    int main(){
        ios::sync_with_stdio(false), cin.tie(0);
        cin >> t;
        while(t--){
            string s, ss;
            string str1 = "", str2 = "";
            cin >> s >> ss;
            int len1 = s.length(), len2 = ss.length();
            int len = len1 * len2 / gcd(len1, len2); // 求长度的最小公倍数,最小公倍数和最大公因数的关系是很基础的数论知识
            for(int i = 0; i < len / len1 ; i++) str1 += s;
            for(int i = 0; i < len / len2 ; i++) str2 += ss;
            if(str1 == str2) cout << str1 << endl;
            else cout << "-1" << endl;
        }
     
        return 0;
    }
    
  • 相关阅读:
    Papervision3D Essentials中文版,附Papervision3D_2.1.920.swc和章节练习源码
    谷歌Chrome浏览器上安装调试(debugger)版本的Flash Player
    Flash运行时错误代码解释说明
    XML
    Android手机与电脑互通
    mysql
    j2ee
    Linux
    C_obj
    maven
  • 原文地址:https://www.cnblogs.com/FrankOu/p/14280212.html
Copyright © 2011-2022 走看看