B. String LCM(lcm思维)
发布日期:2021-06-30 10:27:18 浏览次数:2 分类:技术文章

本文共 764 字,大约阅读时间需要 2 分钟。

两个字符串 a a a b b b,把 a a a看成比较短的那个,长度分别为 n 1 , n 2 n_1,n_2 n1,n2

那么毫无疑问,答案必然是 x a xa xa,其中 x x x未知

因为只有这样能被 a a a整除

而且有 x ∗ n 1 < = n 1 ∗ n 2 x*n_1<=n_1*n_2 xn1<=n1n2

如果 n 1 ∗ n 2 n_1*n_2 n1n2凑不成就不可能凑成

因为每次添加一个 a a a都相当于循环节往后移动一位, n 1 ∗ n 2 n_1*n_2 n1n2移动了 n 2 n_2 n2

再移动下去,就又变成最开始的情况,所以无解。

所以暴力枚举 x x x判断即可

#include 
using namespace std;int id,n1,n2;string a,b;char c[10009];bool isok(){
if( id%n2!=0 ) return false; int now = 0; for(int i=1;i<=id;i++) {
if( b[now]!=c[i] ) return false; now++; if( now==n2 ) now = 0; } return true;}int main(){
int t; cin >> t; while( t-- ) {
cin >> a >> b; if( a.length()>b.length() ) swap(a,b); n1 = a.length(), n2 = b.length(); id = 0; int flag = 0; while( id<=n1*n2 ) {
for(int i=0;i

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/112649251 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:1473C. No More Inversions(数学+详细证明过程)
下一篇:1473 D. Program(预处理^_^)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月26日 23时22分54秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章