随笔分类 - 筛选法
摘要:View Code #include"iostream"using namespace std;int prime(int x){ int i; if(x%2==0&&x!=2) return 0; //此处剪枝可以提高效率,要不超时 for(i=3;i<=sqrt(x);i+=2) { if(x%i==0) return 0; } return 1;}int main(){ int n,m; int i; while(cin>>n) { int count=0; for(i=0; i<n; i++) { cin>>m;
阅读全文
摘要:枚举法。。。。View Code #include"iostream"#define M 1000001using namespace std;int a[M];int main(){ int m,n; int i; memset(a,0,sizeof(a)); for(i=1;i<=1000001;i++) { int x=i; int k=i; while(x) { if(x%10==4||x%100==62){ a[k]=1; } x/=10; } } while(cin>>m>>n,m+n) { int flag=0; for(i=m;
阅读全文
摘要:刚开始用了几次gcd(),结果n次tle, 最后用了筛选法,终于a了,效率提高不少啊!http://acm.hdu.edu.cn/showproblem.php?pid=1286View Code #include"iostream"using namespace std;int main(){ int n,a,i,j,count; int b[32768]; cin>>n; while(n--) { cin>>a; memset(b,0,sizeof(b)); for(i=2;i<=a;i++) { if(a%i==0&&b[
阅读全文