题目大意:n组数据,每组数据给出不超过7个数字,将这些数字排列,问能组成多少个素数。

思路:观察数据范围,7个数字,最多就是10^7个数,开一个bool就能存下那些是素数。当然最好还是线性筛,O(n)处理出来。然后组合数字当然可以搜索,但是我比较偷懒,直接全排列了。然后再为了防止重复计数,用一个map存一下是否搜过。就这样乱搞过了。

CODE:

#include <map>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define INF 10000000
#define MAX 1000010
using namespace std;map<int,bool> G;int cases;
int temp,src[MAX],cnt,ans;
bool not_prime[INF];
int prime[MAX],primes;char s[10];void Pretreatment();
inline void Initialize();
inline void Judge();int main()
{Pretreatment();for(cin >> cases;cases; --cases) {Initialize();scanf("%s",s + 1);cnt = strlen(s + 1);for(int i = 1;i <= cnt; ++i)src[i] = s[i] - '0';sort(src + 1,src + cnt + 1);do Judge();    while(next_permutation(src + 1,src + cnt + 1));printf("%d\n",ans);}return 0;
}void Pretreatment()
{not_prime[0] = not_prime[1] = true;for(int i = 2;i < INF; ++i) {if(!not_prime[i])prime[++primes] = i;for(int j = 1;j <= primes && i * prime[j] < INF; ++j) {not_prime[i * prime[j]] = true;if(i % prime[j] == 0)   break;  }}
}inline void Initialize()
{cnt = ans = 0;G.clear();
}inline void Judge()
{int now = 0;for(int i = 1;i <= cnt; ++i) {now = now * 10 + src[i];if(!not_prime[now] && !G[now])G[now] = true,ans++;}
}

POJ 3842 An Industrial Spy 快筛质数+STL乱搞相关推荐

  1. POJ - 3842 An Industrial Spy dfs(水)

    题意:给你一串数字,最少一个,最多七个,问用这里面的数字能组成多少素数,不重复. 思路:之前还遍历10000000的每一个素数,结果超时,后来发现直接dfs就可以了,只是标记一下做过的数. 1 #pr ...

  2. poj 2262 Goldbach's Conjecture——筛质数(水!)

    题目:http://poj.org/problem?id=2262 大水题的筛质数. #include<iostream> #include<cstdio> #include& ...

  3. 算法刷题-数论-质数的判定、分解质因数、筛质数

    文章目录 数论 1. 质数 质数的判定---试除法 分解质因数---试除法 筛质数 朴素筛法 埃氏筛法 线性筛法 数论 1. 质数 质数:在大于1的整数中,如果只包含1和它本身这两个约数,那么这个数就 ...

  4. 筛质数—(朴素筛法、埃氏筛法、欧拉筛法(线性筛法))

    筛质数时首先要了解质数的定理:1~n中有  个质数 下面再来看具体算法: 1.朴素筛法: 直接把2~n-1中质数和合数的倍数都筛一遍,其代码如下所示: int primes[N],cnt=0; boo ...

  5. 【数学专题】 筛质数、分解质因数和快速幂

    筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...

  6. 质数 AcWing 868. 筛质数 线性筛

    质数 AcWing 868. 筛质数 原题链接 AcWing 868. 筛质数 算法标签 数学知识 质数 线性筛法筛法求素数 思路 线性筛,保证每个合数只被最小素因子筛掉 (1)当i%primes[j ...

  7. 南邮 OJ 1128 An Industrial Spy

    An Industrial Spy 时间限制(普通/Java) :  10000 MS/ 30000 MS          运行内存限制 : 65536 KByte 总提交 : 38         ...

  8. 素数统计 平移区间筛质数(1e9)

    素数统计 思路: 平移区间筛质数(1e9), 对于每个质数逐个在区间中筛数 #include <cstdio> #include <cstring> #include < ...

  9. 洛谷 P3338线性筛质数

    洛谷 P3383线性筛质数 思路 一个亿的数据用埃氏筛法都过不去,只能用线性筛法: 另外就是一定要用scanf与printf,不然超时 Code #include<iostream> #i ...

最新文章

  1. 景观格局动态变化分析方法(基于ArcGIS、Fragstats、ENVI、ERDAS、Patch Analysis for ArcGIS) (2011-03-15 08:07:03)...
  2. linux服务器多网卡bond
  3. 一次学5句简单英语口语
  4. php根据手机号码获取省份
  5. wxWidgets:窗口删除
  6. Envi IDL中多元线性回归计算方法
  7. wps文档提取关键词_Cisdem Document Reader5实用文档阅读器
  8. 再谈谈ADO.NET Data Service
  9. python基本词汇的特点_开课吧老师为你讲解 Python都有什么优点?
  10. 【实习之T100开发】T100 单档程序开发(1)开发流程
  11. mysql 为什么性能不稳定_浅谈MySQL 数据库性能优化
  12. mysql手册06_触发器
  13. OPPO R9sPlus怎么刷机 OPPO R9sPlus的刷机教程 OPPO R9sPlus完美解除账号锁
  14. 一、Webservice的概念和原理
  15. PS制作3D立体字、透明气泡
  16. 机器学习-朴素贝叶斯(高斯、多项式、伯努利)
  17. 计算机开机总要按f1键,为什么开机要按f1键?win7每次开机按f1才能进入系统怎么办...
  18. FIR内插滤波器的FPGA实现(一)-matlab实现
  19. 13种老人不适合带孩子_让老人带娃却遭怒摔!细数13种不适合带孩子的老人!...
  20. Java生成PDF文件保存到本地磁盘

热门文章

  1. BPM软件_K2再度入选Gartner iBPMS MQ挑战者象限_全球领先的工作流引擎
  2. Prolog不是hentai
  3. #ACW 4084 号码牌(无向图连通性+简单拓扑序)
  4. python变量无需创建赋值_阿博的Python之路-变量
  5. 翻转课堂在语文教学中的案例
  6. Adobe illustrator2022(Ai2022)新增功能
  7. 牛客寒假算法基础集训营4-I.爆炸的符卡洋洋洒洒
  8. Python中字符串的迷幻操作-----驻留机制的理解
  9. 被“忽略”的云巨头:天翼云营收三位增长从何而来? | 看财报
  10. 中国人寿张青南:中国人寿如何基于容器构建PaaS平台