[DP][思维] ZOJ3161 Damn Couples

题目最重要的是理解题意。。然后第二重要的是把原来的分散的点变成连续的:因为如果一开始的时候list上两个人就不相邻这时候最好就直接宣布了这个8g,因为这时候他们不会有任何一个人离开,这些操作之后也不用考虑了,这一步操作肯定的是最优的。

然后剩下的就是一块一块的被8g连起来的段,他们两两有一个8g,然后这时候可以用类似于矩阵链乘的算法,枚举第一次宣布的8g点,然后分成左右两块计算。max表示枚举断点取最大值,min表示顾客的想法:他们要让答案尽量小。

继续阅读“[DP][思维] ZOJ3161 Damn Couples”

[比赛][递推][计数DP] 2018 ICPC 徐州网络赛 A Hard to prepare

比赛时候一直想推通式,然而并没有成功,和队友两个人用两种思路推出来两个公式。。。然后最后得知答案的通式是分奇偶性的,每个公式正好对一半,呵呵。。。。。

就题目本意来讲应该是dp。先把圆环展开为链,然后考虑一个满足题意的局面,这时候最后一位客人的面具与第一位客人的面具的关系决定了这条链是否能形成符合要求的环。如果一开始用两个状态分别表示最后一位与第一位冲突以及最后一位与第一位不冲突的两种情况,则会发现无法继续往后转移,因为从n位摆到n+1位的方法数是会受到前一位与第一位是否相同的影响的,因此需要再加一个状态信息,三个状态信息分别表示,最后一位与第一位相同,最后一位与第一位冲突,既不相等也不冲突,三种情况下的方案数,写出状态转移方程即可。

继续阅读“[比赛][递推][计数DP] 2018 ICPC 徐州网络赛 A Hard to prepare”