Codeforces Round #214 (Div. 2)

题目链接

代码链接

A:

枚举4个门的守卫,看一下钱够不够贿赂,够的话就把多余的钱全给第二个人

B:

统计一下Sum[i%k],取最小的那个i,则答案为i%k

C:

方程转化为 sigma(ai-k*bi) = 0,以ai-k*bi为容量,ai为价值,背包一遍

D:

虽然l,r的范围很大,但是边最多3000条,则可行区间的左右端点的取值必然在这3000*2个值内。因此,枚举3000个左端点,二分右端点,dfs判断可行性,维护一个最大差值即是解

E:

预处理出note到note的最大曼哈顿距离,然后扫一遍乐谱得解。关键在于预处理的过程,时间上不允许从每个位置bfs一次。但是注意到曼哈顿距离的特殊性,在每一列维护note x的最大行和最小行,则第i列的a 与第j列的b 的最大距离为 max(ai.maxline-bi.minline, bi.maxline-ai.minline)+abs(i-j),复杂度m*m*k*k,1.5S过去了。存在把复杂度优化到m*k*k的方法,499MS,见代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值