WA on #4
查看原帖
WA on #4
124314
lcyxds楼主2020/12/9 00:19
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

char a[20000010];
int alen;
char b[20000010];
int blen;
int z[20000010];
int p[20000010];
unsigned long long zres;
unsigned long long pres;

int main() {
  freopen("z.in", "r", stdin);
  scanf("%s%s", a+1, b+1);
  alen = strlen(a+1);
  blen = strlen(b+1);
  for (int i = 1; i <= blen; i++) {
    for (int j = i; j <= blen; j++) {
      if (b[j]==b[j-i+1]) {
	z[i]++;
	continue;
      }
      break;
    }
  }
  for (int i = 1; i <= blen; i++) {
    zres = zres^i*(z[i]+1);
  }
  for (int i = 1; i <= alen; i++) {
    for (int j = i; j <= alen && j-i+1 <= blen; j++) {
      if (a[j]==b[j-i+1]) {
	p[i]++;
	continue;
      }
      break;
    }
  }
  for (unsigned long long i = 1; i <= alen; i++) {
    pres = pres^i*(p[i]+1);
  }
  printf("%llu\n%llu\n", zres, pres);
  fclose(stdin);
  return 0;
}

O(n2)O(n^2) 暴力程序,提交时文件输入输出已注释

2020/12/9 00:19
加载中...