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

云南昆明独立站建站长沙网站托管seo优化公司

云南昆明独立站建站,长沙网站托管seo优化公司,在北京注册公司要哪些条件,代理网页 在线文章目录 DFS排列数字n皇后 BFS走迷宫 拓扑序列单链表树与图的深度优先搜索模拟队列有向图的拓扑序列 bellman-ford有边数限制的最短路 spfaspfa求最短路spfa判断负环 FloydFloyd求最短路 PrimPrim算法求最小生成树 KruskalKruskal算法求最小生成树 染色法判定二分图染色法判定…

文章目录

    • DFS
      • 排列数字
      • n皇后
    • BFS
      • 走迷宫
    • 拓扑序列
      • 单链表
      • 树与图的深度优先搜索
      • 模拟队列
      • 有向图的拓扑序列
    • bellman-ford
      • 有边数限制的最短路
    • spfa
      • spfa求最短路
      • spfa判断负环
    • Floyd
      • Floyd求最短路
    • Prim
      • Prim算法求最小生成树
    • Kruskal
      • Kruskal算法求最小生成树
    • 染色法判定二分图
      • 染色法判定二分图

DFS

排列数字

#include<iostream>
using namespace std;
int n ;
int a[10];
bool s[10];
void dfs(int u)
{if(u == n){for(int i = 0 ; i <n ; i++) cout << a[i] << " " ;cout << endl ;return;}for(int i = 1; i <= n ; i++){if(!s[i]){a[u] = i;s[i] = true ;dfs(u+1);a[u] = 0 ;s[i] = false;}}}
int main()
{cin >> n ;dfs(0);return 0;
}

n皇后

#include<iostream>
using namespace std;
const int N = 20 ;
char g[N][N] ;
bool c[N], x[N] , y[N];
int n , m ;
void dfs(int u)
{if(u == n){for(int i = 0 ; i < n; i++) cout << g[i] << endl;cout << endl;return ;}for(int i = 0 ; i < n ; i++){if(!c[i] && !x[u+i] && !y[u-i+n]){c[i] = x[u+i] = y[u-i+n] = true ;g[u][i] = 'Q';dfs(u+1);g[u][i] = '.';c[i] = x[u+i] = y[u-i+n] = false ;}}
}
int main()
{cin >> n;for(int i = 0 ; i < n ; i++)for(int j = 0 ; j < n ; j++)g[i][j] = '.' ;dfs(0);        return 0 ;
}

BFS

走迷宫

#include<iostream>
#include<cstring>
using namespace std;
typedef pair<int,int> PII ;
const int N = 110 ;
PII q[N * N];
int f[N][N] , d[N][N];
int n , m ;
int dx[] = {0,1,0,-1} , dy[] = {1,0,-1,0} ;
int bfs()
{memset(d , -1 , sizeof d);d[1][1] = 0 ;q[0] = {1,1};int hh = 0 , tt = 0 ;while(hh <= tt){auto t = q[hh++] ;for(int i = 0 ; i < 4 ; i++){int x = t.first + dx[i] , y = t.second + dy[i] ;if(x<=n &&x>0 && y<=m && y>0 && d[x][y] == -1 && f[x][y] == 0){q[++tt] = {x,y};d[x][y] = d[t.first][t.second] + 1 ;}}}return d[n][m];
}
int main()
{cin >> n >> m ;for(int i = 1 ; i <= n ; i++)for(int j = 1 ; j <= m ; j++)cin >> f[i][j];cout << bfs();return 0;
}

拓扑序列

单链表

点击跳转至例题
在这里插入图片描述
在这里插入图片描述
idx存的是指针

树与图的深度优先搜索

树的重心
在这里插入图片描述

每个节点都是一个单链表

模拟队列

hh = 0 , tt = -1

有向图的拓扑序列

在这里插入图片描述
都是从前指向后,即有向无环图(不能有环)
所有入度为0的点,都能排在前面的位置

在这里插入图片描述
删掉t->j的边,仅仅是j的入度减一,当j的入度为0的时候,放入队列

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1e5 + 10;
int n , m ;
int e[N] , h[N] , ne[N] , idx;
int d[N] , q[N];
void add(int a , int b)
{e[idx] = b , ne[idx] = h[a] , h[a] = idx++;
}
bool topool()
{int hh = 0 , tt = -1 ;for(int i = 1;  i <= n ; i++)if(!d[i]) q[++tt] = i ;while(hh <= tt){int t = q[hh++];for(int i = h[t] ; i != -1 ; i = ne[i]){int j = e[i]; d[j] -- ;if(d[j] == 0) q[++tt] = j ;}}return tt == n - 1;
}
int main()
{cin >> n >> m ;memset(h , -1 , sizeof h) ;for(int i = 0 ; i < m ; i++){int x,y;cin >> x >> y;add(x,y);d[y]++;}if(topool()){for(int i = 0 ; i < n ; i++) cout << q[i] << " " ;}else cout << -1 ;return 0;
}

bellman-ford

有边数限制的最短路

spfa

spfa求最短路

spfa判断负环

Floyd

Floyd求最短路

Prim

Prim算法求最小生成树

Kruskal

Kruskal算法求最小生成树

染色法判定二分图

染色法判定二分图

http://www.wangmingla.cn/news/123981.html

相关文章:

  • 有哪些做网站的网站百度搜索词排名
  • 杭州品牌网站开发网站目录提交
  • 义乌网站建设优化排名百度seo快速排名优化
  • 乌市建设委员会官方网站今日热点新闻头条国内
  • 网站源码如何优化推广网站有效的免费方法
  • 网页做的很美的网站seo网站内容优化
  • wordpress o connorseo系统优化
  • 武汉网站建设优化百度推广售后客服电话
  • 阿里云网站备案入口宁波做seo推广企业
  • b2c网站建设哪家好seo网站优化详解
  • 镇江网站建设门户报价seo工作是什么意思
  • 开源程序网站网站服务器地址查询
  • 龙岩 网站建设营销型网站建设实训总结
  • wordpress看其他人博客什么是seo优化
  • 佛山网站建设找哪家全国最大的关键词挖掘
  • 深圳电商网站设计公司网址大全123
  • 做搜狗手机网站优化快发布项目信息的平台
  • 织梦网站footer美化百度快速优化排名软件
  • 可信网站免费认证百度联系方式
  • 班级网站网页设计seo系统培训哪家好
  • 犬舍网站怎么做信息流广告素材网站
  • 樟木头东莞网站建设磁力猫引擎入口
  • 下载站源码cms对网站和网页的认识
  • 太原哪家网站建设公司好seo推广平台
  • 网站建设找至尚网络网络营销成功案例ppt
  • 凯里网站建设公司哪家好seo网站排名的软件
  • 沧州开发网站多少钱市场调研报告3000字范文
  • 360网站seo如何做营销推广模式有哪些
  • 晋江哪里可以学建设网站网站优化企业排名
  • 网站根目录 一级二级三级目录理发培训专业学校