#P1258. 2023.04.27-春招-第四题-路径数量

2023.04.27-春招-第四题-路径数量

注:这个题意确实有点迷。std都不保证100%正确。整不了建议放弃。标答放在评论区了

题目内容

塔子哥是一个喜欢探险的小男孩,他有一天发现了一张神秘的地图,上面标注了一些奇怪的符号和箭头。

他觉得这是一张藏宝图,并且这个藏宝图是一个有向图,于是他决定去寻找宝藏。地图上的符号代表了不同的地点,箭头代表了可以从一个地点到达另一个地点的路线。

地图上有两个特殊的符号,S和E,分别代表了起点和终点。(这张图只有S无入度,只有E无出度)塔子哥想要从起点出发,到达终点,同时经过某个指定的地点,比如一个古老的神庙或一个美丽的瀑布。

他想知道有多少种不同的路线可以满足他的要求,他的要求如下:

  1. 与普通的访问不同,塔子哥被允许访问所有点以及边多次。
  2. 塔子哥被允许访问环,但是不能无限转圈,那将无法停下,所以GameMaker规定了,同一个环不能经过22 次或 22 次以上,不然没法停下来
  3. 塔子哥必须路过被要求经过的点

你能帮他计算出有多少种路线吗?

输入描述

第一行为一个字符串 str ,表示指定节点。

接下来若干行,每一行为两个字符串 s1s2 ,表示节点 s1 到节点 s2 有一条边。

约定

1节点个数101 \leq 节点个数 \leq 10

保证输入的是一个合法的有向图。不含自环,不含重边.指定节点不是S,ES,E

输出描述

输出为一个整数,表示从S节点开始E节点结束且经过指定节点 str 的路径数量。

样例

样例一

输入

2
S 1
S 1a
1 2
1a 2
2 3
3 E

输出

2

样例解释

样例一输入的图如下:

image

由上可知以S作为起点,E作为终点并且经过节点2的路径有两条。

样例二

输入

3
S 1
1 2
2 1
2 3
3 E

输出

2

样例解释

样例二输入的图如下:

image

由上可知以S作为起点,E作为终点并且经过节点3的路径有一下两条路径: S->1->2->3->ES->1->2->1->2->3->E

其中第二条路径走了一次环,然后跳出了环,因为题目要求环不能走两次及以上。

样例三

输入

a3
a3 a5
a3 a4
a4 a5
a4 a3
a5 a3
S a5
a5 E

输出

5