1. Big Buttons
Q:构造长度为N的字符串,每一位可以是R或者B。给了P个前缀,构造的字符串不可包含这P个前缀。(如果不是作为前缀出现则可以。)问有多少种构造方式。
A:先计算总共有多少个((2^N)),然后减掉前缀后的个数。
有些坑:
1.prefix A可能是多个prefix的前缀,例如 B,BR,BB
2.prefix A是prefix B的前缀,prefix B是prefix C的前缀,例如 B,BR,BRBB。A和C重合的部分已经被B排除了,所以只需要分别计算A and B, B and C。
2. Mural
Q:小明要在连续的N面墙上画画,每面墙画好之后都能得到相应的分数,但是由于天气不好有洪水,每天都会毁掉一面墙,因此小明找找出能得到最高分数的画画方案。
注:小明第一次画画时可以随意选择一面墙开始,但是接下来的每一天,他只能画他已画过的部分旁边的新部分。在每一天结束的时候,洪水都会毁掉一面墙,这面墙是没有被画过的且是两头(就是墙的头或者尾部),因为小明用的是防水涂料所以已经画过的部分不会被冲掉。
A:能画的墙的长度为N/2(取大,即不小于N的最小整数,如3/2=1.5,则取2),无论如何,只要选取了长度为N/2的墙部分,总有办法能把它画完,因此,取窗口大小为N/2的窗口,遍历所有墙面,分数和最大的窗口就是答案。
3. Let Me Count The Ways
Q:有N对couple坐在一排,其中指定的M对newlywed couple中,每个couple不能挨着坐。问一共多少种就坐方式。
A: