我在几天内解决了以下codechef问题: - https://www.codechef.com/NOV16/problems/ALEXTASK
经过大量的思考后,我想出了以下解决方案: -
#include<stdio.h>
int main(void)
{
int t, n, i, flag;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
long a[n], time;
for(i = 1; i <= n; i++)
scanf("%ld", &a[i]);
time = 1;
flag = 0;
while(1)
{
for(i = 1; i <= n; i++)
{
if(time % a[i] == 0)
flag++;
if(flag == 2)
break;
}
if(flag == 2)
break;
else
{
time++;
flag = 0;
}
}
printf("%ld\n", time);
}
return 0;
}
现在我能够接受较小的数组a [i],即a [i] <= 1000但是对于较大的数组a a [i],如a [i]&lt; = 10 ^ 9超过1秒的时间限制。
我想了很多关于改善时间复杂度的方法,但我无法这样做。
那么,任何人都可以帮助我改进我的计划吗?