博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
质数方阵
阅读量:6886 次
发布时间:2019-06-27

本文共 1634 字,大约阅读时间需要 5 分钟。

先筛质数

vector存满足某种状态且各数位和合法的质数

然后先填第一行、第一列、第一对角线

继续填,先填约束多的,再填约束少的

复杂度非常可观~就是代码有点长~

#include"cstdio"#include"cstring"#include"iostream"#include"algorithm"#include"vector"#include"bitset"using namespace std;const int MAXN=1e5+5;int sum,c,cnt;int pw[5],p[MAXN];vector
vec[11][11][11][11][11];bitset
vis;struct rpg{ int v[6][6]; void write() { for(int i=1;i<=5;++i){ for(int j=1;j<=5;++j){ printf("%d",v[i][j]); }puts(""); }return; }}b,a[505];int get(int x,int v){return x/pw[v-1]%10;}void init(){ scanf("%d%d",&sum,&c);pw[0]=1;for(int i=1;i<=4;++i) pw[i]=pw[i-1]*10; for(int i=2;i<=1e5;++i){ if(!vis[i]) p[++p[0]]=i; for(int j=1;j<=p[0]&&i*p[j]<=1e5;++j){ vis[i*p[j]]=1; if(!(i%p[j])) break; } }for(int i=1;i<=p[0];++i){ if(p[i]<1e4) continue; int tmp1=get(p[i],5),tmp2=get(p[i],4),tmp3=get(p[i],3),tmp4=get(p[i],2),tmp5=get(p[i],1); if(tmp1+tmp2+tmp3+tmp4+tmp5!=sum) continue; vec[tmp1][tmp2][tmp3][tmp4][tmp5].push_back(p[i]); }for(int i=1;i<=9;++i){ for(int j=0;j<=9;++j){ for(int k=0;k<=9;++k){ for(int l=0;l<=9;++l){ for(int m=1;m<=9;m+=2){ for(int n=0;n
b.v[i][j]) return 0; } }return 0;}void write(){ if(!cnt){puts("NONE");return;} sort(a+1,a+cnt+1,cmp);a[1].write(); for(int i=2;i<=cnt;++i) puts(""),a[i].write(); return;}int main(){ init(); solve(); write(); return 0;}

转载于:https://www.cnblogs.com/AH2002/p/9910688.html

你可能感兴趣的文章
Android IOS WebRTC 音视频开发总结(六六)-- 三个角度分析美女视频直播这个行业...
查看>>
ExpandableListView视图树简单应用
查看>>
popwindow
查看>>
FastSocket学习笔记~RPC的思想,面向对象的灵活
查看>>
TCP连接探测中的Keepalive 和心跳包
查看>>
2015第5周三网摘
查看>>
C#系列教程——对一个对象的装箱取消转换
查看>>
RTP协议分析
查看>>
簡單SQL存儲過程實例
查看>>
有效沟通:听懂话,才能回答(转)
查看>>
整理的代码规范
查看>>
IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结...
查看>>
小知识~让你的DLL类库带上注释
查看>>
Junit测试打印详细的log日志,可以看到sql
查看>>
还是畅通工程
查看>>
深入分析Kubernetes Critical Pod(四)
查看>>
docker安装mongodb
查看>>
第69天:jQuery入口函数
查看>>
redis集群搭建
查看>>
如何在阿里云上构建一个合适的Kubernetes集群
查看>>