求此题正解!!最好能带解释!!玄关
  • 板块学术版
  • 楼主songwu_el
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/10/2 20:41
  • 上次更新2023/11/2 16:28:06
查看原帖
求此题正解!!最好能带解释!!玄关
822337
songwu_el楼主2023/10/2 20:41

题目描述

众所周知,老师的 OJ 最近经常被攻击,于是他设计了一个超级密码

我们知道,密码越长,破解难度越高,而位数每增加一位对于破解难度的提升都是幂级的 所以只要密码够长,就不可能被人破解

现在老师准备登录服务器,但是他发现,由于密码太长了,他自己也输不对了

老师设置的密码为一个仅由小写字母组成的字符串

现在他输入的密码为一个仅由小写字母组成的字符串

老师想知道,他有几位是输入正确的?(即求有多少个 满足 )

输入格式

由于老师设置的密码长度过长,为了方便输入,请根据以下方式读取字符串 和 输入第一行包含两个正整数 和 输入第二行包含一个仅由小写字母组成的字符串 ,由 重复拼接 次得到

输入第二行包含一个仅由小写字母组成的字符串 ,由 重复拼接 次得到

输出格式

输出老师输入正确的位数

样例输入

30 20

abbb

bbaabb

样例输出

70

n,m<=10的九次方

我只对了5个点,其余5个点都Runtime Error 0Segmentation fault

求调求调!或求大佬正解代码!

#include <bits/stdc++.h>
using namespace std;
char a[123123];
char b[123123];
long long ans=0;
long long jls,jls1;
long long n,m;
int main()
{
  cin>>n>>m;
  string s,s1;
  cin>>s;
  cin>>s1;
  jls=s.length();
  long long ha=0,ha1=0;
  jls1=s1.length();
  for(long long i=0; i<n*jls; i++)
  {
    if(ha==jls)
    {
      ha=0;
    }
    a[i]=s[ha];
    ha++;
  }
  for(long long i=0; i<m*jls1; i++)
  {
    if(ha1==jls1)
    {
      ha1=0;
    }
    b[i]=s1[ha1];
    ha1++;
  }

  for(long long i=0; i<n*jls; i++)
  {
    if(a[i]==b[i])
    {
      ans++;
    }
  }
  cout<<ans;
  return 0;
}

2023/10/2 20:41
加载中...