首页 > 编程语言 >算法复习 DFS两题

算法复习 DFS两题

时间:2023-12-24 09:04:53浏览次数:33  
标签:typedef const 复习 int ll DFS dfs 两题 include

全排列 模版题 AcWing 842. 排列数字

#include <cstdio>
#include <vector>
#include <queue>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <stack>

using namespace std;
typedef long long ll;
typedef pair<int, int>P;
const int maxn = 1e5 + 10;
const int INF = 0x3f3f3f3f;
const ll mod = 998244353;
const double eps = 1e-11;
const double pi = 3.141592653;

bool rec[10];
int n;
vector<int> v;
void dfs(int h)
{
    if(h == n+1)
    {
        for(int j = 0; j < n; ++j) cout << v[j] << " \n"[j==n-1];
        return;
    }
    for(int i = 1; i <= n; ++i)
    {
        if(rec[i] == 0)
        {
            rec[i] = 1;
            v.push_back(i);
            dfs(h + 1);
            v.pop_back();
            rec[i] = 0;
        }
    }
}

int main()
{
    cin >> n;
    dfs(1);
}

n-皇后 剪枝 AcWing 843. n-皇后问题

#include <cstdio>
#include <vector>
#include <queue>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <stack>

using namespace std;
typedef long long ll;
typedef pair<int, int>P;
const int maxn = 1e5 + 10;
const int INF = 0x3f3f3f3f;
const ll mod = 998244353;
const double eps = 1e-11;
const double pi = 3.141592653;

int n;

bool y[10], u[20], v[20];
vector<int> vec;
int tot;
void dfs(int h)
{
    if(h == n + 1)
    {
        tot++;
        if(tot != 1) cout << endl;
        for(int i = 0; i < n; ++i)
        {
            for(int j = 1; j <= n; ++j)
            {
                if(j != vec[i]) cout << ".";
                else cout << "Q";
            }
            cout << endl;
        }
        return;
    }
    for(int i = 1; i <= n; ++i)
    {
        if(!y[i] && !u[h+i] && !v[h+n+1-i])
        {
            //cout << h << ' ' << i << endl;
            y[i] = 1;
            u[h+i] = 1;
            v[h+n+1-i] = 1;
            vec.push_back(i);
            dfs(h+1);
            y[i] = 0;
            u[h+i] = 0;
            v[h+n+1-i] = 0;
            vec.pop_back();
        }
    }

}

int main()
{
    cin >> n;
    dfs(1);
}

标签:typedef,const,复习,int,ll,DFS,dfs,两题,include
From: https://www.cnblogs.com/Maxx-el/p/17923959.html

相关文章

  • 期末复习
    DHCP功能DHCP地址池dhcpenableippoolelinnetwork192.168.100.0mask24gateway-list192.168.100.254dns-list114.114.114.114leaseday1hour1minute1intg0/0/0dhcpselectglobal接口下发dhcpenableintg0/0/0ipadd192.168.200.25424dhcpse......
  • 密码学期末复习
    密码学复习笔记欧几里得算法欧几里得算法(辗转相除法)利用带余除法求两个整数a和b的最大公因子的过程。给定两个正整数a和b,假定a大于b,由带余除法,可以得到:其中r就是a和b的最大公因子算术基本定理同余关系的性质取模重要结论快速幂计算器快速模幂运算如果B是2......
  • Python hdfs 读取文件报错 Temporary failure in name resolution
    问题背景本人按照菜鸟教程的步骤,在windows系统布置了ubuntu虚拟机环境,并使用centos容器镜像搭建出单节点的hdfs服务。欲使用Pythonhdfsapi测试hdfs服务的功能,遂在ubuntu中编写以下代码准备测试fromhdfsimportClientclient=Client(url='http://172.17.0.3:9870',root=......
  • day 1 复习
    day1复习1.什么是编程语言:人与计算机交流的介质2.什麽事编程:用编程语言编写一堆文件3.为什么要编程:奴役计算机,解放劳动力4.计算机五大组成CPU1.控制器:控制硬件2.运算器:逻辑运算与算数运算内存1.优点:速度快2.缺点:断电即消失外存(硬盘,光盘,磁带)1.优点:永久保存2.缺......
  • 图(树)的深度优先遍历dfs
    图的深度优先遍历深度优先,即对于一个图或者树来说,在遍历时优先考虑图或者树的单一路径的深度。示意图如下即深度优先搜索的核心就是对一个路径一直向下搜索,当搜索到头时就回溯到前一状态再寻找别的路深搜问题一般有两种情况,一种是搜索时元素只能用有限次,这需要我们定义一......
  • 如何设置和配置dfsadmin命令
    Hadoop是一个用于处理大规模数据的开源框架,而dfsadmin命令是Hadoop中用于管理分布式文件系统(DFS)的命令。本文将介绍如何设置和配置dfsadmin命令,以便更好地管理和操作Hadoop的分布式文件系统。1.安装Hadoop:首先,需要安装Hadoop并完成基本的配置。可以从Hadoop官方网站下载最新的稳定......
  • 大物期末复习
    大物期末总复习力学质点运动学圆周运动ppt上蓝框圈住的公式有错误,法向加速度应乘以速度质点动力学功与能功能原理电磁学静电场库仑定律环形带电体距离圆心x处场强高斯定理揭示了静电场是有源场环路定理磁场毕萨定律运动电荷磁场磁......
  • [LeetCode22-中等-DFS] 括号生成
    这道题考使用回溯(递归的一种)进行深度优先算法,题目是这样的数字n代表生产括号的对数,写一个算法,返回所有有效的括号组合比如 n=1代表生成1对括号,显然答案就是“()"n=2,代表生成2对括号, 答案就是"()()","(())"n=3代表生成3对括号,答案就是"((()))","()()()","(()())......
  • FastDFS 单机版linux部署笔记
    参考文章:https://blog.csdn.net/qq_20409407/article/details/134201386备忘:fastdfs三部分路径为:/home/fastdfs/tracker/home/fastdfs/storage/home/fastdfs/client#fastdfs命令工具所在路径usr/└──bin/├──fdfs_appender_test├──fdfs_appender_test1├......
  • (三十五)C#编程基础复习——C#预处理器指令
    预处理指定的作用主要是向编译器发出指令,以便在程序编译开始之前对信息进行一些预处理操作。在C#中,预处理器指令均以#开头,并且预处理器指令之前只能出现空格不能出现任何代码。另外,预处理器指令不是语句,因此它们不需要分好;结尾。在C#中,预处理指令用于帮助条件编译。不同于C和C++......