日程表安排

【题目描述】

有四个队伍参加ACM的暑期培训,时间为n天。四个队伍的名字分别标为队伍A、B、C、D,每天有一支队伍负责出题。作为培训班的老师,你可以决定每天由哪支队伍出题。但是有一些事项要注意:

1.没有队伍能够连续两天出题;

2.在培训的其中m天中,负责出题的队伍事先已经确定(例如:A队负责出第1天的题,B队负责出第6天的题,这两天的出题队伍就不能再被改变);

询问一共有多少种安排方案并输出结果(结果要对1000000007求余)。

【输入描述】

第一行两个整数n、m (1 ≤ n ≤ 10000000,0 ≤ m ≤ 10),n表示暑期培训的天数,m表示已经安排好的天数。接下来的m行表示对应天负责出题的队伍。

【输出描述】

所有的方案数(结果要对1000000007求余)。

【样例输入】

样例1:

3 2

1 A

3 C

样例2:

2 1

1 D

【样例输出】

样例1:

2

样例2:

3

【数据范围及提示】

样例1:

ABC、ADC

样例2:

DA、DB、DC

原文地址:https://www.cnblogs.com/Ackermann/p/5698758.html