八皇后问题:

 //八皇后问题  经典的DFS问题实践
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
using namespace std;
int mat[][];
int ans=;
bool check(int row,int col)//最终检查满足要求,则return 1
{
for(int i=;i<row;i++)
{
if(mat[i][col])
return false;
for(int j=;j<;j++)
{
//不能在同一条对角线上
if(mat[i][j])
{
if(fabs(i-row)-fabs(j-col)==)
return ;
else
continue; }
}
}
return ;
}
int dfs(int row)
{
if(row>=)
{
ans++;
for(int i=;i<;i++)
{
for(int j=;j<;j++)
cout<<mat[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}
for(int col=;col<;col++)
{
if(check(row,col))
{
mat[row][col]=;
dfs(row+);
mat[row][col]=;
}
}
return ;
}
int main()
{
memset(mat,,sizeof(mat));
dfs();
cout<<"一共有"<<ans<<"种解决方案"<<endl;
}

//最终结果显示一共有92种解决方案

部分和问题

给定整数a1、a2、.......an,判断是否可以从中选出若干个数,使他们的和恰好为k。

 //部分和问题
#include <iostream>
using namespace std;
const int Maxn=;
int a[Maxn];
int n,k;
bool dfs(int i,int sum){
if(i==n) return sum==k;
if(dfs(i+,sum)) return true;//不加上a[i]的情况
if(dfs(i+,sum+a[i])) return true;
return false; }
void solve()
{
if(dfs(,)) printf("yes!");
else printf("no!");
}
int main() {
cin>>n;
for(int i=;i<n;i++){
cin>>a[i];
}
cin>>k;
solve();
return ;
}

经典DFS问题实践的更多相关文章

  1. 洛谷 P1019 单词接龙【经典DFS,温习搜索】

    P1019 单词接龙 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在 ...

  2. HDU 1016 Prime Ring Problem(经典DFS+回溯)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  3. HDU 2181 哈密顿绕行世界问题(经典DFS+回溯)

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. Hdu 1016 Prime Ring Problem (素数环经典dfs)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  5. POJ 1321 - 棋盘问题 - [经典DFS]

    题目链接:http://poj.org/problem?id=1321 Time Limit: 1000MS Memory Limit: 10000K Description 在一个给定形状的棋盘(形 ...

  6. 蓝桥杯之剪格子(经典dfs)

    如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+ |10* 1|52| +--****--+ |20|30* 1| *******--+ | 1| 2| 3| +--+--+-- ...

  7. LeetCode51 N皇后——经典dfs+回溯(三段式解法)

    代码如下: class Solution { public: // record[row] 该行对应的列 vector<vector<string> > ans; // 结果集 ...

  8. HDU 1241 Oil Deposits(经典DFS)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 很经典的一道dfs,但是注意每次查到一个@之后,都要把它变成“ * ”,然后继续dfs ...

  9. HDU 1312 Red and Black(经典DFS)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 一道很经典的dfs,设置上下左右四个方向,读入时记下起点,然后跑dfs即可...最后答 ...

随机推荐

  1. 01-python基础知识

    1.这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们? 答案 如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args:如果我 ...

  2. 电脑用HDMI线分屏后,耳机或音箱没声音之完美解决!

    现今,由于工作需要,很多人都偏爱给自己的电脑进行分屏,两个显示器同时连接在一台电脑上,并进行“扩展这些功能显示”,从而大大提高了工作积极性和工作效率.本人在进行分屏后遇到了耳机没有声音的问题,并进行了 ...

  3. echarts画中国地图并上色

    任务是画一个中国地图,并在指定区域上颜色,学姐说用arcgis画,乖乖,4个g的安装文件,算了, 还是echarts大法好..如果想熟悉这个牛X的工具,请移步https://www.w3cschool ...

  4. 让 Ubuntu 16 开机自动启动 Vino Server

    Vino Server 有一个问题, 如果用户没有login , 它是不会启动的. 但是,我把帐号设置从自动启动之后,Vino Server还是没有启动. 看来自动启动跟输密码启动还是有差别的. 具体 ...

  5. 雷林鹏分享:C# 程序结构

    C# 程序结构 在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 C# 的最小的程序结构,以便作为接下来章节的参考. C# Hello World 实例 一个 C# 程序主要包括以下部分: ...

  6. 20181013xlVba年级成绩报表

    Public Sub 高一成绩报表() Application.ScreenUpdating = False Application.DisplayAlerts = False Application ...

  7. ssh登陆被拒?(云:使用云的网页版远程登陆) 不好用。

    设定的密

  8. apicloud 聊天输入框模块UIChatBox

    点击链接查看详情 https://docs.apicloud.com/Client-API/UI-Layout/UIChatBox 模板中包括,聊天输入框,表情,发送图片,还有拍照,录音,其中也可以放 ...

  9. vim操作(待补充)

    :wq 存盘 + 退出 (:w 存盘, :q 退出) :e 打开新文件 :q 退出 h.j.k.l,分别控制光标左.下.上.右移一格. 按Ctrl+B:屏幕往后移动一页.[常用] 按Ctrl+F:屏幕 ...

  10. RabbitMQ、Redis、Memcache

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...