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

蓝桥杯打卡Day1


文章目录

  • 全排列
  • 八皇后

一、全排列IO链接

本题思路:本题是一道经典的全排列问题,深度优先搜索即可解决。

#include <bits/stdc++.h>constexpr int N=10;std::string s;
std::string ans;
int n;
bool st[N];void dfs(int u)
{if(u==n){std::cout<<ans<<std::endl;return;}for(int i=0;i<n;i++){//如果当前字符没有遍历过,则加入到当前的字符串中去if(!st[i]){st[i]=true;ans.push_back(s[i]);dfs(u+1);//继续寻找下一个满足条件的字符ans.pop_back();//回溯st[i]=false;}}
}int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);std::cin>>s;n=s.size();dfs(0);return 0;
}

利用STL库中的next_permutation函数来求全排列问题:

#include <iostream>
#include <algorithm>using namespace std;int main()
{string s;cin >> s;do cout << s << '\n';while(next_permutation(s.begin(), s.end()));return 0;
}

二、八皇后IO链接

本题思路:利用dfs的方式找出92组解,判定该点是否可以放皇后时,用了三个bool类型的数组col[N], dg[N], udg[N]来储存某列,某正对角线,某副对角线是否可以放置,所以当其中值为true时,就不能在该点放。我们需要一个数组ans来储存答案,同时,我们得想办法把每个皇后所在列转成int类型存起来。为了方便,我们在进行dfs时可以先把答案用char类型储存在path[8]数组里面,最后转成int类型放进ans数组最后处理m次询问就行。

#include <bits/stdc++.h>constexpr int N=20,M=100;int n,ans[M];//ans保存92种八皇后信息
int idx;
char path[8];
bool col[N],dg[N],udg[N];//col表示列,dg表示主对角线,udg表示副对角线void dfs(int u)
{if(u==8){ans[++idx]=atoi(path);//加入到某一种情况中return;}for(int i=0;i<8;i++){if(!col[i]&&!dg[u+i]&&!udg[8-u+i]){col[i]=dg[u+i]=udg[8-u+i]=true;path[u]=i+1+'0';dfs(u+1);col[i]=dg[u+i]=udg[8-u+i]=false;}}
}int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);dfs(0);std::cin>>n;while(n--){int x;std::cin>>x;std::cout<<ans[x]<<std::endl;}return 0;
}

http://www.lryc.cn/news/155801.html

相关文章:

  • zipkin2.24.2源码install遇见的问题
  • yapi密码是如何生成的
  • 2023-09-02 LeetCode每日一题(最多可以摧毁的敌人城堡数目)
  • k8s环境部署配置
  • Java之文件操作与IO
  • 指令系统(408)
  • Pygame中Trivia游戏解析6-3
  • 热释电矢量传感器设计
  • MySql学习笔记10——视图介绍
  • 【探索Linux】—— 强大的命令行工具 P.7(进程 · 进程的概念)
  • JAVA宝典----容器(理解记忆)
  • JS中的扩展操作符...(点点点)
  • 找redis大key工具rdb_bigkeys
  • ElasticSearch进阶
  • Nor flash 页写地址与数据大小的限制
  • python 深度学习 解决遇到的报错问题4
  • C到C++的升级
  • 《热题101》动态规划篇
  • 【综述+3D】基于NeRF的三维视觉2023年度进展报告(截止2023.06.10)
  • 基于JavaScript粒子流动效果
  • 【U盘】实现U盘清空并重置恢复存储
  • 基于Hugo 搭建个人博客网站
  • Springboot + Sqlite实战(离线部署成功)
  • 【后量子密码】CRYSTALS-KYBER 算法(一):MLWE 问题与NTT(附源码分析)
  • VTK——angleWidget的3D转换
  • HDFS 集群动态节点管理
  • postman9.12.汉化版(附有下载链接)
  • mysql与msql2数据驱动
  • 解决微信小程序回调地狱问题
  • cron介绍