无聊的都来刷题(2个半小时)解题报告

无聊的都来刷题(2个半小时) G:Reduced ID Numbers-by feng910510

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++;
        }
    }
    ……
    ……
    ……
}


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.