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

}

相关推荐
汀、人工智能16 小时前
[特殊字符] 第21课:最长有效括号
数据结构·算法·数据库架构·图论·bfs·最长有效括号
Boop_wu16 小时前
[Java 算法] 字符串
linux·运维·服务器·数据结构·算法·leetcode
watson_pillow16 小时前
c++ 协程的初步理解
开发语言·c++
故事和你9117 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
Fcy64817 小时前
算法基础详解(三)前缀和与差分算法
算法·前缀和·差分
kvo7f2JTy17 小时前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
List<String> error_P18 小时前
蓝桥杯最后几天冲刺:暴力大法(一)
算法·职场和发展·蓝桥杯
Tanecious.19 小时前
蓝桥杯备赛:Day6-B-小紫的劣势博弈 (牛客周赛 Round 85)
c++·蓝桥杯
迈巴赫车主19 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯
流云鹤19 小时前
Codeforces Round 1090 (Div. 4)
c++·算法