摘要:
神犇考题第三题:设 S ={x|x∈Z,1≤x≤n}给定 N 个 S 的子集 Si,每个集合有一个权值 Wi。这 N 个集合满足其中任意 K 个集合的并集中至少有 K 个元素。请从中选取若干个集合(可以不选),使得其并集的元素个数恰等于选取的集合数,且这些集合的权值和最小。考试的时候觉得这个题相比另外两个挺可写的,于是就使劲想,想出了最大权闭合图,想出了每个集合代表一个数字,可就是没想到把这两个联系起来,无奈,最后还是在包含关系的时候出搞错了,果然我还是太弱了,构造能力捉急。首先有一个非常有用的条件,就是任意k个集合的并集中至少有k个元素,那么,如果有一个合法的方案,那么一定可以用一个单独的元 阅读全文
posted @ 2013-05-04 16:21
Zig_zag
阅读(493)
评论(0)
推荐(0)
摘要:
线段树好题。很容易求出要维护的东西的公式,给线段标号,设x,y为左右线段标号,那么其中出现的总和就是Σc[i]*((i-x)*(y-i)+(y-x)),拆开就是Σ(y-x-y*x)*c[i]+(x+y)*i*c[i]-i2*c[i].于是只要维护∑c[i],∑i*c[i],∑i2*c[i]就行了。我一开始想偷懒写bit发现用了bit以后维护的和会升至3维,(⊙o⊙)…三维求和,略难搞,只好放弃。那么就是线段树,用一个求和公式就行了。看来以后要多练练线段树了,实在是偷懒偷的太多了......road 1 #include<iostream> 2 #include<cstdio& 阅读全文
posted @ 2013-05-04 15:03
Zig_zag
阅读(494)
评论(0)
推荐(0)