C++算法篇
文章平均质量分 94
Xunlan_
你好(*´▽`)ノノ
很高兴认识你~~
展开
-
[ BFS解法 ] | CF1579F-Array Stabilization(AND version)
文章目录题目题意输入数据样例思路题目洛谷链接或codeforces链接。题意已知长度为nnn的数组a[n]a[n]a[n]和ddd,且a[n]a[n]a[n]是0/1数组。定义一种操作:令a′[n]a'[n]a′[n]为a[n]a[n]a[n]循环右移ddd位后的数组,接着令ai=ai&bia_i=a_i\&b_iai=ai&bi。问在多少次操作后a[ ]a[\space]a[ ]能全部变为0。若没有可能,输出-1。输入第一行一个原创 2021-10-22 23:59:05 · 150 阅读 · 0 评论 -
C++算法篇:DFS超详细解析(1)--- 无向图基本概念
文章目录一、DFS是什么?二、DFS的基本框架三、DFS-tree一、DFS是什么? DFS(Depth First Search) ,即 深度优先搜索 ,是一种遍历图的方式,对于下图(设从u开始访问)若先访问了v点:则下一步会访问v的子节点w点:发现无路可走,则回溯回v,再回到u,之后前往x。总结一下,dfs会在搜索到新点时优先访问以改点为起点的子节点,并在所有子节点访问完成后回溯,可以看出,dfs和递归殊途同归。相反地,有BFS(Breath First Search)广度优先搜索,原创 2021-10-19 20:26:17 · 4297 阅读 · 1 评论 -
C++算法篇:DFS超详细解析(2)--- tarjan算法求无向图割边
<<<上一篇系列文章目录①:无向图基本概念②:tarjan算法求无向图割边前言第一次写算法,讲得肯不透彻,有误还请指教awa文章目录系列文章目录一、回顾二、tarjan算法一、回顾先来回顾一下dfs的基本框架://存图方式:vector(g[N])void dfs(int u){//u:当前节点 vis[u]=true; for(int& v:g[u]){//访问u连到的每个节点 if(!vis[v]) dfs(v); }}二、tarja原创 2021-10-20 19:51:46 · 1629 阅读 · 0 评论