zoukankan      html  css  js  c++  java
  • hdu1016 Prime Ring Problem

    嘿嘿,终于还是AC了,DFS

    多开了几个数组,稍微加快了一点点,不然就超时了,原来,一点一点的剪枝,还是有那么一点点用滴,看代码吧

    #include<iostream>
    #include<queue>
    using namespace std;
    int prime[]={2,3,5,7,11,13,17,19,23,29,31,37};//相邻俩个数的和顶多就37,所以把其中的所有素数都直接打表了
    int a[20],b[20],n;
    bool hash1[40];
    void init()//哈希表
    {
    	memset(hash1,0,sizeof(hash1));
    	for(int i=0;i<12;i++)
    		hash1[prime[i]]=1;
    }
    void dfs(int t,int cnt)
    {
    	b[cnt]=t;//保存路径
    	if(cnt==n)
    	 {
    		 if(hash1[t+1])//判断是否为素数
    		 {
    			 for(int j=1;j<n;j++)
    				 cout<<b[j]<<' ';
    			cout<<t<<endl;
    		 }
    		 else return ;
    	}
    	int i=t%2==0?3:2;
    	for(;i<=n;i+=2)
    	{
    		
    		if(a[i]!=1&&hash1[t+i]==1)
    		{
    			a[i]=1;
    			dfs(i,cnt+1);
    			a[i]=0;
    		}
    	}
    	return ;
    
    }
    int main()
    {
    	int flag=0;
    	init();
    	while(cin>>n)
    	{
    		flag++;
    		cout<<"Case "<<flag<<":"<<endl;
    		memset(a,0,sizeof(a));
    		a[0]=1;
    		dfs(1,1);
    		cout<<endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    gitlab+gerrit+jenkins持续集成框架
    多线程自动翻页爬虫
    爬虫超级简单入门
    完整开发流程管理提升与系统需求分析过程 随堂笔记(day 1) 【2019/10/14】
    Logistic Regression
    cmdb项目-2
    cmdb项目-3
    cmdb全总结
    crm-1
    crm-2
  • 原文地址:https://www.cnblogs.com/nanke/p/2124426.html
Copyright © 2011-2022 走看看