译自 COI 2011 T4。
Mirko 找到了一份卡车司机的工作。他的任务是在城市间的道路上行驶,同时进行货物的装货和卸货。Mirko 的卡车容量非常大,可以装载无限量的货物,但由于自动化装卸系统的限制,他只能卸下最后装上卡车的货物。总共有 种不同类型的货物,分别用英文字母表示。
城市之间通过单向道路连接,每条道路恰好长 公里,Mirko 在这些道路上需要进行货物的装货/卸货操作。具体来说,存在三种类型的道路,分别用数字 、、 标识,其规则如下:
-
每当 Mirko 经过此类道路时,必须装载一个该道路指定的特定类型货物。
-
每当 Mirko 经过此类道路时,必须从卡车上卸下一个该道路指定的特定类型货物。
-
Mirko 可以自由通过此类道路,无需任何操作。
除了在通过道路时必须执行的操作外,Mirko 不得进行任何其他装卸货操作。
Mirko 可以在总共 条道路上行驶,这些道路连接着 个城市。Mirko 初始位于编号为 的城市,他的目标是到达编号为 的城市。到达城市 时,卡车不需要为空。
请编写程序计算 Mirko 在最多行驶 公里的条件下,有多少种不同的方式可以完成这段旅程。
注意:解中可能包括多次经过城市 的路径,只要旅程最终在该城市结束即可。换句话说,所有城市和道路都可以被多次访问(但每次通过道路时都需要重新遵守对应的通行规则)。