题目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;

}

相关推荐
平哥努力学习ing2 小时前
补充 part 1——防御性编程
算法
cyforkk2 小时前
14、Java 基础硬核复习:数据结构与集合源码的核心逻辑与面试考点
java·数据结构·面试
Trouvaille ~2 小时前
【Linux】线程同步与互斥(四):线程池与任务管理
linux·运维·服务器·c++·操作系统·线程池·日志系统
wbs_scy2 小时前
C++:智能指针完全指南(原理、用法与避坑实战,从 RAII 到循环引用)
开发语言·c++·算法
u0109272712 小时前
C++中的对象池模式
开发语言·c++·算法
试试勇气2 小时前
算法工具箱之哈希表
数据结构·算法·散列表
HaiLang_IT2 小时前
【信息安全毕业设计】基于双层滤波与分割点改进孤立森林的网络入侵检测算法研究
网络·算法·课程设计
hansang_IR2 小时前
【记录】AT_abc400模拟赛
c++·算法·模拟赛
说给风听.3 小时前
拆解蓝桥杯红黑树:无限深度树的奇偶性规律与 Python 实战解法
python·职场和发展·蓝桥杯