2020集训队作业板刷记录(二)

继续

ARC096F

传送门

不会

首先可以转化为每个点的代价是子树里所有代价之和,价值是子树的节点个数,\(1\)号点可以选任意个,其他点最多选\(d\)个,求最大价值

先考虑一个贪心,记\(w_i\)为代价,\(v_i\)为价值,先把所有点按\(w_i\over v_i\)降序排序,然后从前往后贪心选。这样贪心肯定是错的,不过我们发现,由于\(v_i\leq 50\),如果存在某个\(i<j\),且\(i\)还能选的次数大于等于\(50\)\(j\)已经选的次数大于等于\(50\),那么我们可以让\(i\)再选\(v_j\)次,让\(j\)选的次数减少\(v_i\)次,这样总的价值是不变的,但是代价减小了,所以一定不会存在这种情况

所以上面那种情况一定不存在了,我们可以把每个物品分成两部分,一部分最多只有\(50\)个,另一部分就是减去前面那部分。前一部分的价值最大只有\(O(n^3)\),那么我们可以直接背包算出\(f_i\)表示价值为\(i\)时的最小代价,然后枚举在这一部分里的价值,剩下的就可以在另一部分里贪心了

CF704D

传送门

类似CF574D,跑个上下界最大流就行了,然后把选出来的全都设为较为便宜的那种颜色

CF576E

传送门

线段树分治,用可持久化并查集维护即可

AGC027D

传送门

不会

首先把网格黑白染色,那么相同颜色的点互不影响,如果我们令\(m=1\),且白点的权值都已经确定,那么黑点的权值可以设成它周围四个白点权值的\(lcm +1\),对于白点的权值,我们可以对于每一条主对角线和每一条副对角线各给一个素数,一个白点的权值就是所在主对角线和副对角线的权值之积,这样就行了

AGC030E

传送门

由于某些原因,这题咕咕咕了

猜你喜欢

转载自www.cnblogs.com/yuanquming/p/12036663.html