摘要: 求最小值最大显然是要二分 二分之后转换成了判定性问题 我们考虑哪些点一定不能选 显然是将所有可选点选中之后依然不满足条件的点不能选 那么我们不妨维护一个堆,每次取出堆顶看看是否满足条件 不满足条件就pop掉,并进行松弛 最后判定堆是否为空即可 另外,其实这道题思考到这里我们会发现二分并没有什么卵用, 阅读全文
posted @ 2016-04-07 06:55 _Vertical 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 首先我们会发现所有的人构成了一个图 定义相爱为 在一个集合里 定义相恨为 不在一个集合里 很容易发现满足条件的图一定是一个二分图 那么分类讨论如下: 1、如果出现不合法 答案为0 2、如果不是一个二分图 答案为0 3、设图中联通块有k个,那么答案为2^k/2! = 2^(k-1) 那么算法很明了了 阅读全文
posted @ 2016-04-07 06:31 _Vertical 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目啰里啰嗦说了一大堆(耐心读完题目就可以秒题了) 首先我们考虑当前置换的开头的循环节的开头 1、如果是1 1->1形成循环节 问题变成i-1的子问题 2、如果是2 1->2->1形成循环节 问题变成i-2的子问题 3、如果>2 则存在1->x->1形成一个循环节,但在原置换中不连续,所以一定不可能 阅读全文
posted @ 2016-04-07 06:27 _Vertical 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 先说我的解法吧 首先设f(i,j)表示选了前i个球且j种颜色都已经选完了的方案数 这显然是可以随便转移的 还有一种做法是考虑最后一种颜色,一定有一个在最后一位,其余的任意放 之后考虑倒数第二种颜色,一定有一个在当前的最后一位,其余的任意放 以此类推 所以ans=C(sum-1,c[n]-1]*C(s 阅读全文
posted @ 2016-04-07 06:22 _Vertical 阅读(139) 评论(0) 推荐(0) 编辑