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;
    }
    
  • 相关阅读:
    FMDB 使用方法
    Masonry
    iOS请求服务器数据去空NSNull
    NSProgress
    根据图标名称动态设置TreeList图标
    控制显示行头列(Indicator)
    窗体内元素遍历-通用方法(DevExpress 中BarManager的遍历)
    BarManager相关使用
    C# 枚举变量
    dev TreeList 获取可视区域节点方法
  • 原文地址:https://www.cnblogs.com/FrankOu/p/14280212.html
Copyright © 2011-2022 走看看