洛谷P1154 奶牛分厩

 洛谷P1154 奶牛分厩

如果(a同余b)mod c;则 c|(a-b)。

n^2把每两个数之间的差求出来,做标记vis[cur]。

之后从n开始枚举k,如果对于当前k以及k在数域s内的倍数mk都不存在标记,那么当前值一定满足。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn=5000+5;
 5 
 6 
 7 int vis[1000000+5];
 8 int a[maxn];
 9 int main()
10 {
11     int n;scanf("%d",&n);
12     for(int i=1;i<=n;i++) scanf("%d",&a[i]);
13     for(int i=1;i<=n;i++)
14     {
15         for(int j=1;j<=n;j++)
16         {
17             if(i==j) continue;
18             vis[abs(a[i]-a[j])]=1;
19         }
20     }
21     for(int i=n;i<=1000000;i++)
22     {
23         if(!vis[i])
24         {
25             int flag=1;
26             for(int j=i;j<=1000000;j+=i)
27             {
28                 if(vis[j]) 
29                 {
30                     flag=0;break;
31                 }
32             }
33             if(flag)
34             {
35                 printf("%d\n",i);
36                 break;
37             }
38         }
39     }
40     return 0;
41 }

 

posted @ 2019-08-08 11:09  Chuhanjing  阅读(179)  评论(0编辑  收藏  举报