题目链接:https://ac.nowcoder.com/acm/contest/923/B
题目大意:
当时看了看数太大,大整数复杂度也高,仔细看了看公式既然全部是乘法,那么取模后结果应该也是一样的。a[i], b[i]范围<=10^5直接预处理阶乘。哈希搞一搞。当时有预感,会卡ull。不过都写完了。直接交一发,果然wa。然后直接mod个大整数就AC了。
#include <bits/stdc++.h>
#define LL long long
using namespace std;
unsigned LL mod = 1ll*1610612741;
unsigned LL p[100005];
int a[2000005];
int main()
{
p[0]=1;
for(unsigned LL i=1;i<=100000;i++)
{
p[i]=(p[i-1]*i)%mod;
}
int t;
scanf("%d",&t);
while(t--)
{
int n, m;
scanf("%d%d",&n,&m);
unsigned LL s1=1, s2=1;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
s1=s1*p[a[i]]%mod;
}
for(int i=1;i<=m;i++)
{
scanf("%d",&a[i]);
s2=s2*p[a[i]]%mod;
}
if(s1==s2)
{
printf("equal\n");
}
else
{
printf("unequal\n");
}
}
return 0;
}