13 条题解

  • 0
    @ 2015-10-05 19:48:58

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<queue>
    #include<vector>
    #include<cmath>
    using namespace std;
    const int yu[]={2,3,5,7};
    const int hu[]={1,3,7,9};
    int pan(int x)
    {
    for(int i=2;i<=sqrt(x);i++)
    {
    if(x%i==0)return 0;
    }
    return 1;
    }
    int main()
    {
    int n;
    cin>>n;
    if(n==1)
    {
    for(int i=0;i<4;i++)
    {
    cout<<yu[i]<<"\n";
    }
    }
    if(n==2)
    {
    for(int i=0;i<4;i++)
    {
    for(int k=0;k<4;k++)
    {
    int m=yu[i]*10+hu[k];
    if(pan(m))cout<<m<<"\n";
    }
    }

    }
    if(n==3)
    {
    for(int i=0;i<4;i++)
    for(int k=0;k<4;k++)
    for(int j=0;j<4;j++)
    {
    int m=yu[i]*100+hu[k]*10+hu[j];
    int op=yu[i]*10+hu[k];
    if(pan(m)&&pan(op))cout<<m<<"\n";
    }
    }
    if(n==4)
    {for(int i=0;i<4;i++)
    for(int k=0;k<4;k++)
    for(int j=0;j<4;j++)
    for(int o=0;o<4;o++)
    {int op=yu[i]*10+hu[k];
    int opp=yu[i]*100+hu[k]*10+hu[j]*1;
    int m=yu[i]*1000+hu[k]*100+hu[j]*10+hu[o];
    if(pan(op)&&pan(opp)&&pan(m))cout<<m<<"\n";
    }
    }
    if(n==5)
    {for(int i=0;i<4;i++)
    for(int k=0;k<4;k++)
    for(int j=0;j<4;j++)
    for(int o=0;o<4;o++)
    for(int u=0;u<4;u++)
    {
    int op=yu[i]*10+hu[k];
    int opp=yu[i]*100+hu[k]*10+hu[j]*1;
    int oppp=yu[i]*1000+hu[k]*100+hu[j]*10+hu[o];
    int m=yu[i]*10000+hu[k]*1000+hu[j]*100+hu[o]*10+hu[u];
    if(pan(op)&&pan(opp)&&pan(oppp)&&pan(m))cout<<m<<"\n";
    }

    }
    if(n==6)
    {
    for(int i=0;i<4;i++)
    for(int k=0;k<4;k++)
    for(int j=0;j<4;j++)
    for(int o=0;o<4;o++)
    for(int u=0;u<4;u++)
    for(int p=0;p<4;p++)
    { int op=yu[i]*10+hu[k];
    int opp=yu[i]*100+hu[k]*10+hu[j]*1;
    int oppp=yu[i]*1000+hu[k]*100+hu[j]*10+hu[o];
    int opppp=yu[i]*10000+hu[k]*1000+hu[j]*100+hu[o]*10+hu[u];
    int m=yu[i]*100000+hu[k]*10000+hu[j]*1000+hu[o]*100+hu[u]*10+hu[p];
    if(pan(op)&&pan(opp)&&pan(oppp)&&pan(opppp)&&pan(m))cout<<m<<"\n";
    }
    }
    if(n==7)
    {
    for(int i=0;i<4;i++)
    for(int k=0;k<4;k++)
    for(int j=0;j<4;j++)
    for(int o=0;o<4;o++)
    for(int u=0;u<4;u++)
    for(int p=0;p<4;p++)
    for(int r=0;r<4;r++)
    {int op=yu[i]*10+hu[k];
    int opp=yu[i]*100+hu[k]*10+hu[j]*1;
    int oppp=yu[i]*1000+hu[k]*100+hu[j]*10+hu[o];
    int opppp=yu[i]*10000+hu[k]*1000+hu[j]*100+hu[o]*10+hu[u];
    int oppppp=yu[i]*100000+hu[k]*10000+hu[j]*1000+hu[o]*100+hu[u]*10+hu[p];
    int m=yu[i]*1000000+hu[k]*100000+hu[j]*10000+hu[o]*1000+hu[u]*100+hu[p]*10+hu[r];
    if(pan(op)&&pan(opp)&&pan(oppp)&&pan(opppp)&&pan(oppppp)&&pan(m))cout<<m<<"\n";
    }
    }
    if(n==8)
    {
    for(int i=0;i<4;i++)
    for(int k=0;k<4;k++)
    for(int j=0;j<4;j++)
    for(int o=0;o<4;o++)
    for(int u=0;u<4;u++)
    for(int p=0;p<4;p++)
    for(int r=0;r<4;r++)
    for(int t=0;t<4;t++)
    {int op=yu[i]*10+hu[k];
    int opp=yu[i]*100+hu[k]*10+hu[j]*1;
    int oppp=yu[i]*1000+hu[k]*100+hu[j]*10+hu[o];
    int opppp=yu[i]*10000+hu[k]*1000+hu[j]*100+hu[o]*10+hu[u];
    int oppppp=yu[i]*100000+hu[k]*10000+hu[j]*1000+hu[o]*100+hu[u]*10+hu[p];
    int opppppp=yu[i]*1000000+hu[k]*100000+hu[j]*10000+hu[o]*1000+hu[u]*100+hu[p]*10+hu[r];
    int m=yu[i]*10000000+hu[k]*1000000+hu[j]*100000+hu[o]*10000+hu[u]*1000+hu[p]*100+hu[r]*10+hu[t];
    if(pan(op)&&pan(opp)&&pan(oppp)&&pan(opppp)&&pan(oppppp)&&pan(opppppp)&&pan(m))cout<<m<<"\n";
    }
    }
    return 0;
    }

  • 0
    @ 2009-10-05 14:25:34

    人到了某个水平后就让人觉得是神了

    orz楼上的牛!

  • 0
    @ 2009-07-16 22:01:41

    看了楼下的程序,想了半天终于知道枚举什么东西了……

    Orz ......

    看到没人给这题写个正经的题解,那么我就写了一个:点我看题解

  • 0
    @ 2009-07-13 21:58:44

    PKU1232是什么?

  • 0
    @ 2009-07-13 16:51:57

    果然枚举。。。

    挺有意思的题目,注意 0 和 1 是不完全相同的。

  • 0
    @ 2009-07-19 17:45:10

    看来我在比赛的时候的想法和正确答案只有一步之遥.

    囧的是无解的时候我的程序会输出两次 noway

  • 0
    @ 2009-07-12 23:26:02

    枚举

    AC

  • 0
    @ 2009-07-12 22:23:05

    占层 枚举过了·········

  • 0
    @ 2009-07-12 21:40:54

    这题我蒙的

  • 0
    @ 2009-07-02 12:52:57

    Oh,My God

  • 0
    @ 2009-07-13 12:24:24

    沙茶枚举题

    PKU1232有更详细的描述

  • 0
    @ 2009-07-01 20:27:44

    这是比赛的第三题,

  • -1
    @ 2009-10-20 20:58:56

    Accepted 有效得分:100 有效耗时:0ms

    诧异了,=了好久,终于=到sunny了 T^T

    位运算+记忆化搜索.....感谢《数据结构与算法设计》...

  • 1

信息

ID
1563
难度
9
分类
其他 | 构造搜索 | 枚举搜索 点击显示
标签
递交数
429
已通过
29
通过率
7%
被复制
3
上传者