牛客网2017年浙江工业大学大学生程序设计迎新赛预赛 - H 栗酱的文明 区间修改+区间最值+Havel-Hakimi定理+贪心

题目链接

题意:有 n n n 个城市,每个城市有 a i a_i ai 个士兵,每两个城市之间只能发生一次战争,每次战争两个城市都要消耗一个士兵,没有士兵的城市不能发生战争,问如何分配发生战争的城市,使得最后剩下的士兵总数最少,最少是多少。

思路:按照题意,发生战争相当于两个城市连边,士兵相当于一个城市度的上限,则就是在满足限制条件的情况下尽可能多的连边。这可以转化为已知每个点的度数,问是否存在一个满足每个点度数的没有自环和重边的图。

这类问题即用Havel–Hakimi定理解决:
S = ( d 1 , . . . , d n ) {S=(d_{1},...,d_{n})} S=(d1,...,dn) 为有限多个非负整数组成的非递增的点的度数序列。 S S S 可简单图化当且仅当 S ′ = ( d 2 − 1 , d 3 − 1 , . . . , d d 1 + 1 − 1 , d d 1 + 2 , . . . , d n ) {S'=(d_{2}-1,d_{3}-1,...,d_{d_{1}+1}-1,d_{d_{1}+2},...,d_{n})} S=(d21,d31,...,dd1+11,dd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值