【CSU 1756】Prime
2016-10-19 20:29
288 查看
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1756
直接暴力O(n^2logn)过不了 两两算gcd
考虑每个数的范围[1,1000]统计一下即可O(1000^2*log(1000))
Notice:1与任何数互质,需要特判(自己与自己互质)
Code1 统计
View Code
直接暴力O(n^2logn)过不了 两两算gcd
考虑每个数的范围[1,1000]统计一下即可O(1000^2*log(1000))
Notice:1与任何数互质,需要特判(自己与自己互质)
Code1 统计
// <1756.cpp> - Wed Oct 19 08:25:53 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <cstdio> #include <vector> #include <cmath> #include <cstring> #include <algorithm> using namespace std; const int MAXN=1001; inline int gi() { register int w=0,q=0;register char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')q=1,ch=getchar(); while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar(); return q?-w:w; } int a[MAXN];vector<int>b; inline int gcd(register int a,register int b){ return b==0?a:gcd(b,a%b); } int main() { freopen("1756.in","r",stdin); freopen("1756.out","w",stdout); int T=gi(); while(T--){ int n=gi(),ans=0,to; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) a[gi()]++;b.clear(); for(int i=1;i<MAXN;i++) if(a[i])b.push_back(i);to=b.size(); for(int i,o=0;i=b[o],o<to;o++) if(a[i]) for(int j,k=o+1;j=b[k],k<to;k++) if(gcd(i,j)==1)ans+=a[i]*a[j]; if(b[0]==1)ans+=a[1]>1?(a[1]-1)*a[1]/2:0;//this printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- 文章标题 CSU 1756 :Prime
- CSU 1756: Prime
- csu 1756 prime(数论)
- csu 1756(数论+去重)
- CSU 1556 Pseudoprime numbers
- CSU 1109 FIbonacci-prime
- 【CSU 1556】Pseudoprime numbers
- POJ 3518 Prime Gap 筛法+二分 水题一个
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- 【poj 3126】Prime Path 题意&题解&代码(C++)
- DFS csu1719 Boggle
- UVA_524_Prime Ring Problem
- SDAU 搜索专题 20 Prime Ring Problem
- CSU 1640 机智的刷题方式
- 2011年浙大:Twin Prime Conjecture
- hdu 1973 Prime Path
- 1020 Prime Ring Problem
- UVA - 1644 - Prime Gap(找相邻素数差值)
- hrbust 1756/哈理工oj Merge Intervals【水题】
- uva 524 prime ring problem——yhx