8.12总结

8.12总结

得分

60+20+10

第一题打的是正解,常数太大GG

T1

1735240-20190814081834244-2106246549.png
1735240-20190814081903456-1011586278.png

正解

看到这题瞬间想到了跳房子那题。

这题也很类似。用线段树维护从第l列某一行跳到第r列某一行的最小值。

T2

1735240-20190814081911607-1348621194.png
n,m<=100000

题面无力吐槽

20分暴力显然

正解

1735240-20190814081936206-456978713.png

关键点一:推式子,巧妙地把问题转化为只用求covered[x]

关键点二:曼哈顿距离与切比雪夫距离的相互转换。

T3

1735240-20190814081944121-1788043198.gif

n<=30

正解

极大匹配:随便选择二分图里的一些边匹配,直到无法选任何一条边。(不一定是最大匹配)

结论:若一个联通块的任意一个极大匹配都是完美匹配,那它一定是一个完全二分图(左边每个点都与右边每个点有连边)。

现在初始给出的图构成了一些联通块。我们的目标是把那些联通块连起来使每一个联通块的\(\Sigma x_i=\Sigma y_i\)。同时,代价就是\((\Sigma x_i)^2\)(因为使总边数最小化就可以使需要添加的边最小化)

状压dp。

首先每一个联通块都可以表示为一个二元组(x,y),我们可以把相同的二元组归为一类来减少状态数。

设f[s][i]表示选了状态为s的二元组,最后一个联通块的\(\Sigma x_i=i\)

f[s][j]=min(f[s][j],f[s1][j-b[i].s0]);枚举第i种二元组的一个转移

f[s][0]=min(f[s][0],f[s][j]+j*j);选够了最后一个联通块,把最后一个联通块计算贡献。这种转移要判断s集合里的二元组合法才行

转载于:https://www.cnblogs.com/leason-lyx/p/11349652.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值