#discovery2016finald. [discovery_2016_final_d]ディスコ社内ツアーⅡ
[discovery_2016_final_d]ディスコ社内ツアーⅡ
问题描述
你是DISCO presents ディスカバリーチャンネルプログラミングコンテスト 2016本戦的导游。
DISCO总部由N个顶点和M条边组成,表示为一个简单有向图。第i条边从顶点from_i指向顶点to_i,并且标有标签O
或E
。
在满足以下条件的情况下,社内游可以从某个顶点s出发并在到达顶点t时结束:
- 如果边标有
O
,则该边被经过奇数次 - 如果边标有
E
,则该边被经过偶数次(可以是0次)
有多少种的组合可以顺利完成社内游?
输入
输入以以下格式从标准输入中给出。
. . .
- 第一行包含两个整数,表示顶点数和有向边数。
- 接下来的M行中,第i行包含两个整数,表示第i条边的信息,以及表示边标签的字符。
- 为
O
或E
。
输入的图是简单图,不包含重边和自环。
输出
输出社内游可以完成的组合的数量,以一行输出。末尾不要忘记换行符。
示例 1
2 1
1 2 O
输出示例 1
1
在这个例子中,当从顶点1移动到顶点2时,满足条件。答案是有1种可能性,没有其他可能性。
示例 2
2 1
1 2 E
输出示例 2
2
在这个例子中,刚开始就满足条件。答案是有2种可能性,没有其他可能性。
请注意,标有E
的边可以不经过任何次数。
示例 3
4 2
1 2 O
3 4 E
输出示例 3
1
在这个例子中,当从顶点1移动到顶点2时,满足条件。答案是有1种可能性,没有其他可能性。
请注意,标有E
的边可以不经过任何次数。
示例 4
4 2
1 2 O
3 4 O
输出示例 4
0
在这个例子中,无论如何移动都无法满足条件。
请注意,标有O
的边必须经过奇数次,标有E
的边必须经过偶数次。
示例 5
3 3
1 2 O
2 3 O
3 1 O
输出示例 5
3
示例 6
4 5
1 2 O
2 1 O
2 3 O
3 1 E
2 4 O
输出示例 6
1
示例 7
4 3
1 2 O
2 1 O
3 4 E
输出示例 7
2
示例 8
2 2
1 2 O
2 1 E
输出示例 8
2
示例 9
4 3
1 2 O
1 3 O
1 4 O
输出示例 9
0