题目1433:蓝桥杯2013年第四届真题-危险系数

#include<iostream>

#include<vector>

using namespace std;

int map[1010][1010];//创建邻接表

int vis[1010];//标记此节点是否访问过

int num[1010];//记录此节点出现过几次

int n,m;//站点数和通道数

int sum=0;//路径数量

vector<int>v;//存储顶点序列

void dfs(int cur,int target){//现在位置,目标位置

if(cur==target){

sum++;//可达路径数加1

for(int i=0;i<v.size();i++){

num[v[i]]++;//把遇到的所有节点都记录下来

}

return;

}

for(int i=1;i<=n;i++){

if(vis[i]==0&&map[cur][i]){

v.push_back(i);

vis[i]=1;

dfs(i,target);

vis[i]=0;

v.pop_back();

}

}

}

int main(){

cin>>n>>m;

int u,v,ans=0;

for(int i=0;i<m;i++){

cin>>u>>v;

map[u][v]=map[v][u]=1;

}

int start,target;

cin>>start>>target;

vis[start]=1;//将开始的点记为1,将不会被计数

dfs(start,target);

for(int i=1;i<=n;i++){

if(num[i]==sum){

ans++;

}

}

if(ans>1){

cout<<ans-1<<endl;

}else{

cout<<-1<<endl;

}

return 0;

}

相关推荐
张李浩26 分钟前
Leetcode 15三题之和
算法·leetcode·职场和发展
2301_793804691 小时前
C++中的适配器模式变体
开发语言·c++·算法
x_xbx1 小时前
LeetCode:206. 反转链表
算法·leetcode·链表
abant21 小时前
leetcode 138 复制随机链表
算法·leetcode·链表
ab1515172 小时前
3.17二刷基础112 118 完成进阶52
数据结构·算法
美式请加冰2 小时前
链表的介绍和使用
数据结构·链表
旖-旎2 小时前
二分查找(1)
c++·算法·二分查找·力扣·双指针
困死,根本不会2 小时前
【C 语言】指针学习笔记:从底层原理到实战应用
c语言·开发语言·笔记·学习·算法
小范自学编程2 小时前
算法训练营 Day38 - 动态规划part07
算法·动态规划
星空露珠3 小时前
迷你世界UGC3.0脚本Wiki全局函数
开发语言·数据库·算法·游戏·lua