POJ2769(同余 + 暴力)

2015-07-20 17:08:49 ? 作者: ? 浏览: 2

?

解题思路:

求组内最小的m使得组内各个数对m求余所的值均不同。暴力的判断吧。发现一个有趣的规律,G++省时间废内存,C++费时间省内存。另外此题的数组不宜开的过大,我开了个10^6的数组,接下来各种超时,换成10^5就过了。

另外,我试了下用set结果还是超时。

?

完整代码:

?

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         using namespace std; typedef long long LL; const int maxn = 100001; int a[maxn] , b[maxn]; int n; inline bool check(int m) { memset(b , 0 , sizeof(b)); for(int i = 0 ; i < n ; i ++) { if(b[a[i] % m]) return false; else b[a[i] % m] = 1; } return true; } int main() { #ifdef DoubleQ freopen(in.txt , r , stdin); #endif; int T; scanf(%d,&T); while(T--) { scanf(%d,&n); for(int i = 0 ; i < n ; i ++) scanf(%d,&a[i]); int m; for(m = 1 ; m < maxn ; m ++) { if(check(m)) { printf(%d , m); break; } } } return 0; }
       
      
     
    
   
  

?

?

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: