Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
我的程序,觉得没问题,希望高手帮忙看一看程序思路:假设a%m=k,同时b%m=k;易见abs(a-b)%m =0; 本题就是将任两个输入的num相减,则减的结果的因子必然不是本题解,cal函数便是完成此功能,用ID【i】=1表示当前点不可用···还有问题吗? #include <iostream> #include <math.h> const int MAXN = 1000001; bool ID[MAXN]; int num[300]; int siz; void solve_one(); int main() { int t; scanf("%d",&t); while (t--&&scanf("%d",&siz)==1&&siz>=1) solve_one(); return 0; } void cal(int x) { int i; double c = sqrt(x*1.0)+1; for (i=2;i<c;i++) { if (x%i == 0)ID[i] = 1; } ID[x] = 1; } void solve_one() { memset(ID,0,sizeof(ID)); int i,j; for (i=0;i<siz;i++) scanf("%d",num+i); for (i=0;i<siz;i++) for (j=i+1;j<siz;j++) cal (abs(num[i]-num[j])); if (siz == 1) { printf("1\n"); return; } for (i=siz;i<MAXN;i++) if (ID[i] == 0)/*ID[i] == 1表示可用*/ { printf("%d\n",i); return; } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator