当前位置: 首页 > article >正文

AcWing 842. 排列数字(周四)

文章目录

  • 复习
  • 前言
  • 代码
  • 思路

复习

  • AcWing 1242. 修改数组(周一)
  • AcWing 1234. 倍数问题(周二)
  • AcWing 1171. 距离(周三)

前言

害,周二周三的题其实对我来说都太难了。感觉现在学习有点递归算法的感觉,就是学一个发现另外的东西不会。今天写一个 dfs 的模板题好了,明天再写一个 dfs 的模板题,下周再学一下 tarjan 算法。

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+1e5+10;
int p[N];
int find(int x){
    if(x!=p[x]){
        p[x]=find(p[x]);
    }
    return p[x];
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<N;i++){
        p[i]=i;
    }
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        x=find(x);
        cout<<x<<" ";
        p[x]=x+1;
    }
    return 0;
}

周二那个题,还有昨天的题确实太难了,等一个好天气,我有足够的时间和勇气的时候再去写那个题。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=10;
int path[N];
bool st[N];
int n;
void dfs(int u){
    if(u==n){
        for(int i=0;i<n;i++){
            cout<<path[i]<<" ";
        }
        puts("");
        return ;
    }
    for(int i=1;i<=n;i++){
        if(!st[i]){
            path[u]=i;
            st[i]=true;
            dfs(u+1);
            path[u]=0;
            st[i]=false;
        }
    }
}
int main(){
    cin>>n;
    dfs(0);
    return 0;
}

思路

排列数字感觉需要注意的点就是,路径存的下标是从 0 开始的,然后数字是从 1 开始计算的,恢复现场是在递归结束之后,回溯之前,这样子可以保证前面的搜索不会影响下一次搜索。搜索树最开始是有 n+1 层,我们从根节点,第 0 层开始搜索,一直搜索到最下面那层结束,然后回溯。深搜,或者叫暴搜,是一条路径走到底再考虑其他路径。


http://www.kler.cn/a/404129.html

相关文章:

  • SpringBoot(8)-任务
  • 工程师 - 智能家居方案介绍
  • 【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰
  • 音视频pts/dts
  • 泷羽sec学习打卡-网络七层杀伤链1
  • 实验室管理效率提升:Spring Boot技术的力量
  • translation1
  • 【Maven】IDEA创建Maven项目 Maven配置
  • ssm框架-spring-spring声明式事务
  • Spring Boot实验室管理系统:高效科研管理解决方案
  • HBase Flink操作
  • 详解Rust枚举类型(enum)的用法
  • 第十二章 Shell脚本编写实战
  • Java项目实战II基于微信小程序的农场驿站平台(开发文档+数据库+源码)
  • 第三代指标平台相较于前两代的显著优势分析
  • 太阳能激光驱鸟器的工作原理是什么,对鸟类有无影响?
  • android MQTT使用示例
  • 网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析1
  • Easyexcel(5-自定义列宽)
  • 库卡机器人维护需要注意哪些事项
  • C#桌面应用制作计算器进阶版02
  • Stable Diffusion中U-Net的前世今生与核心知识
  • 【Ubuntu】如何在Ubuntu系统中查看端口是否可用
  • VIM的下载使用与基本指令【入门级别操作】
  • Java基础终章篇(10)容器类与集合操作
  • 小熊派Nano接入华为云