您的位置:首页 > 其它

Codeforces Round #214 (Div. 2)

2013-11-25 09:52 495 查看
题目链接

代码链接

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,见代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: