栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3842 An Industrial Spy

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3842 An Industrial Spy

#include <cstdio>  #include <cstdlib>  #include <string>  #include <cstring>  #include <map>  #include <vector>  #include <cmath>  using namespace std;  int f[10000],su[1000],nn=0;  bool used[10000000];  int ans,len,a[8];  char str[10];  void init()  {      int i,j;      memset(f,0,sizeof(f));      for(i=2;i<3400;i++)          if(!f[i])   for(j=2*i;j<3400;j+=i)       f[j]=1;      for(i=2;i<3400;i++)          if(!f[i])   su[nn++]=i;  }  int antry(int x)  {      if(x==0||x==1) return 0;      for(int i=0;i<nn&&su[i]<x;i++)          if(x%su[i]==0)   return 0;      return 1;  }  void dfs(int cur,int num,int ck)  {      if(used[num]) return;      if(antry(num)&&!used[num]){          used[num]=1;          ans++;      }      used[num]=1;      if(cur==len) return;      dfs(cur+1,num,ck);      for(int i=0;i<len;i++){          if(num==0&&a[i]==0) continue;          if(ck&(1<<i)) continue;          dfs(cur+1,num*10+a[i],ck|(1<<i));      }  }  int main()  {      int t;init();      scanf("%d",&t);      while(t--){          scanf("%s",str);          ans=0; len=strlen(str);          memset(used,0,sizeof(used));          for(int i=0;i<len;i++)   a[i]=(str[i]-'0');          dfs(0,0,0);          printf("%dn",ans);      }      return 0;  }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369980.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号