上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 59 下一页
摘要: 3495: PA2010 Riddle 链接 分析: 每个点要么建首都,要么不建,并且一个点建了,会导致一些点不能建。所以可以考虑2-sat。 但是如果在每个郡里两两连边,边数是n^2的。 考虑用前缀优化。 S[i]表示对于当前郡,前i个点中是否存在一个首都,A[i]表示i这个点是否建首都。 1、那 阅读全文
posted @ 2019-01-19 14:55 MJT12044 阅读(281) 评论(1) 推荐(0) 编辑
摘要: 1997: [Hnoi2010]Planar 链接 分析: 首先在给定的那个环上考虑进行操作,如果环内有有两条边相交,那么可以把其中的一条放到环的外面去。所以转换为2-sat问题。 像这样,由于1-4和2-3在环内相交了,所以可以把1-4放到环外,就变成了下图。 代码: 阅读全文
posted @ 2019-01-19 11:23 MJT12044 阅读(204) 评论(0) 推荐(0) 编辑
摘要: Priest John's Busiest Day 链接 题意: 有n场婚礼,每场婚礼有开始时间和结束时间,每场婚礼都需要牧师的祝福,祝福的时间只能是婚礼开始或者婚礼结束。问能否满足n场婚礼的要求。 分析: 2-sat问题。 代码: 阅读全文
posted @ 2019-01-18 21:41 MJT12044 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Katu Puzzle 链接 题意: 有n个变量(每个变量只能是0或者1),m个等式,每个等式形如$x_i \ op \ x_j = c, \ op \in["and","or","xor"],c \in [0,1]$,问能否给n个变量赋值,满足所有等式。 分析: 2-sat问题。 注意一下a&b= 阅读全文
posted @ 2019-01-18 18:47 MJT12044 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 3653: 谈笑风生 链接 分析: $ans = min(deep[x] - 1, k) * siz[x] - 1 +\sum\limits_{y是u子树内的点}(siz[y] - 1)$ 前面的可以$O(1)$算,后面的那一部分可以dfs序+主席树维护。 或者dfs的过程中+线段树合并。或者长链剖 阅读全文
posted @ 2019-01-18 16:29 MJT12044 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 4543: [POI2014]Hotel加强版 链接 分析: f[u][i]表示子树u内,距离u为i的点的个数,g[u][i]表示在子树u内,已经选了两个深度一样的点,还需要在距离u为i的一个点作为第三个点。 然后就可以利用这两个数组统计答案了。 ans+=g[u][j]*f[v][j-1]+f[u 阅读全文
posted @ 2019-01-18 14:40 MJT12044 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 2019-01-18 4543: [POI2014]Hotel加强版:长链剖分+树形dp。 3653: 谈笑风生:dfs序+主席树。 POJ 3678 Katu Puzzle:2-sat问题,给n个变量赋值(0/1),满足所有等式。 POJ 3683 Priest John's Busiest Da 阅读全文
posted @ 2019-01-17 08:10 MJT12044 阅读(197) 评论(0) 推荐(0) 编辑
摘要: F - Two Trees 链接 题意: 给定两棵都是N个节点的有根树,节点均从1~N标号。给每个标号定一个权值(类似一号点的权值是x,那么两棵树中1号点的权值都是x),使在两棵树满足以任意节点为根的子树的权值和为1或-1。输出任意一种解或判断无解,N<=100000。 分析: 欧拉回路。 首先每棵 阅读全文
posted @ 2019-01-16 21:21 MJT12044 阅读(471) 评论(0) 推荐(0) 编辑
摘要: POJ 1149 PIGS 链接 #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<cmath> #include<cctype> #include<set> #include<que 阅读全文
posted @ 2019-01-15 22:03 MJT12044 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 很久没写过这东西了,复习一波。 3238: [Ahoi2013]差异 链接 单调栈维护height数组,由于height是递增的,所以维护单调栈中维护每个height出现的次数。(还可以两遍单调栈求一个点是最小值的区间) 1 #include<cstdio> 2 #include<algorithm 阅读全文
posted @ 2019-01-02 22:50 MJT12044 阅读(310) 评论(0) 推荐(0) 编辑
摘要: CF 1061 D. TV Shows 贪心:两条线段一定是挨的最近的连起来,感性的理解,和距离远的合一定不和近的合更优。 所以按左端点排序,将右端点放到一个set里,然后对于每个线段找小于这个线段左端点的最远的点,考虑时候合起来。 另一种方法,将每个点拆成两个,分别是左端点的点,和右端点的点,然后 阅读全文
posted @ 2018-12-30 22:01 MJT12044 阅读(46) 评论(0) 推荐(0) 编辑
摘要: D. Little Elephant and Broken Sorting 链接 题意: 长度为n的序列,m次操作,每次交换两个位置,每次操作的概率为$\frac{1}{2}$,求m此操作后逆序对的期望。 分析: f[i][j]表示i>i的概率,每次交换的概率为$\frac{1}{2}$,设交换的位 阅读全文
posted @ 2018-12-30 20:55 MJT12044 阅读(215) 评论(0) 推荐(0) 编辑
摘要: B - Tree Burning 链接 题意: 一个长度为L的环,有n个位置上有树,从0出发,每次选择一个方向(顺时针或者逆时针),一直走,直到走到一棵树的位置,烧掉这棵树,重复这个过程,直到没有树。求最多走多少距离。 分析: 最优一定是LLLRLRLRL……类似这样的,于是枚举每个点,计算答案。 阅读全文
posted @ 2018-12-30 18:01 MJT12044 阅读(358) 评论(0) 推荐(0) 编辑
摘要: G. Multidimensional Queries 链接 分析: 考虑如何去掉绝对值符号。 $\sum \limits_{i = 1}^{k} |a_{x, i} - a_{y, i}|$,由于k比较小,考虑枚举每一维的符号,发现如果不是最终的答案,结果会变小,不影响取max的操作。 然后就是单 阅读全文
posted @ 2018-12-29 17:56 MJT12044 阅读(197) 评论(0) 推荐(0) 编辑
摘要: E. Intersection of Permutations 链接 题意: 给定两个序列,询问第一个排列的[l1,r1]和第二个排列[l2,r2]中有多少个共同的数,支持在第二个排列中交换两个数。 分析: 首先求出一个数组,c[i],第二个排列的这个数字在第一个排列中出现的位置。那么查询就是询问c 阅读全文
posted @ 2018-12-29 11:16 MJT12044 阅读(187) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 59 下一页