G:Reduced ID Numbers
本题的题意就是求一个最小的正整数,是的n个数对这个数的余数都不相同
我的做法就是暴力,但是结果就是TLE。
在查找余数是否相同的时候我用了hash[]数组
一下两种方法大家可以比较一下,都可以顺利AC
第一种 hash[]赋的值是当前判断的余数,在每组数据中j在不断的增大,所以在查找ok
while(t--)
{
memset(hash, false, sizeof(hash));
……
……
……
while(1)
{
for(i = 0; i < n; i++)
{
if(hash[a[i] % j] != j)
hash[a[i] % j] = j;
else break;
}
if(i == n) break;
else j++;
}
……
……
……
}
第二种
hash在主函数的外面定义及赋初值
while(t--)
{
……
……
……
while(1)
{
for(i = 0; i < n; i++)
{
if(hash[a[i] % j] != true)
hash[a[i] % j] = true;
else break;
}
if(i == n) break;
else
{
for(i = 0; i < n; i++)
hash[a[i] % j] = false;
j++;
}
}
……
……
……
}