zoukankan      html  css  js  c++  java
  • uva 524(Prime Ring Problem UVA

    dfs练习题,我素数打表的时候j=i了,一直没发现实际上是j=i*i,以后可记住了。还有最后一行不能有空格。。。昏迷了半天

    我的代码(紫书上的算法)

    #include <bits/stdc++.h>
    using namespace std;
    int bk[110];
    int num[110];
    int vis[110];
    int n;
    void db()
    {
    	for(int i=2;i*i<=100;i++)
    	if(!bk[i])
    	for(int j=i*i;j<=100;j+=i)
    	bk[j]=1;	
    }
    void dfs(int cur)
    {
    	if(cur==n&&!bk[num[n-1]+num[0]])
    	{
    		for(int i=0;i<n;i++)
    		{
    			cout<<num[i];
    			if(i<n-1)
    			cout<<" ";
    		}
    		cout<<endl;	
    	}
    	else for(int i=2;i<=n;i++)
    	{
    		//cout<<vis[i]<<" "<<bk[i+num[cur-1]]<<endl;
    		if(!vis[i]&&!bk[i+num[cur-1]])
    		{
    			num[cur]=i;
    			vis[i]=1;
    			dfs(cur+1);
    			vis[i]=0;
    		}
    	}
    }
    main()
    {
    	db();
    	int cas=0;
    	num[0]=1;
    	int ft=0;
    	while(cin>>n)
    	{
    		if(ft)
    		cout<<endl;
    		printf("Case %d:
    ",++cas);
    		dfs(1);
    		ft=1;
    	}	
    } 
    
  • 相关阅读:
    JDBC MySQL 实例之 用户管理系统
    利用JDBC连接数据库(MySQL)
    CSS01
    HTML01
    GUI编程02
    GUI编程01
    名词解释
    Navicat MySQL安装
    Eclipse安装Web/JavaEE插件、Eclipse编写HTML代码
    Pascal输出星星
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/9812967.html
Copyright © 2011-2022 走看看