ZOJ3161】的更多相关文章

朴素动态规划 ZOJ3161 题意:(严重标题党)老板不想让客人走,客人不想留,客人按顺序排好,老板抽8g(书上翻译成八卦,神翻译),抽到的 如果相邻,其中一个人由客人决定离开,求最后黑心的老板最多能让多少人留下. 输入: n(客人个数),m(8g关系对数) a(客人a),b(客人b)(m行) 输出: T(最多留下的人数) 思路:之前看题目的时候看懂了,但压根想不出来怎么用dp做,因为我考虑到既然老板要求最多人,而且走人的时候又由客人来选择谁走,那么情况应该很复杂(后来证明我想多了),书上的算法…
不想打题面了,题面戳这里 这道题目的模型转换地有点猛.首先我们肯定需要让老板把那些不相邻的人的卡牌放在前面,这样他们就作废了.然后剩下的卡牌就都是相邻人之间的了.我们就可以把这个序列分成若干个联通块,每个联通块内相邻的人之间有连边.此时显然不同联通块是互不干扰的,我们只需要知道每个联通块内剩下的人最多可以是多少就可以了.这个我们就可以dp了. \(f_i\)表示大小为\(i\)的联通块内最多能剩多少人,那么方程就和显然了. \[f_i = \max \{ f_j+f_{i-j-1} \},j <…