摘要: http://poj.org/problem?id=2373题意:一条直线分割成N(<=25000)块田,有一群奶牛会在其固定区域吃草,每1把雨伞可以遮住向左右延伸各A到B的区域,一只奶牛吃草区域内不允许有雨伞间隙,即只能被1把雨伞覆盖,求将n块田都覆盖的最少雨伞数。分析: 易写出dp式子,dp[i]表示覆盖[0,i]需要的最少雨伞数量—— 若i不为某一奶牛的领地:dp[i]=min(dp[j])+1,i-2b<=j<=1-2a,且j不属于某一只奶牛的领地 若i为某一奶牛的领地:dp[i]=inf这里面临两个问题:1、Q:如何快速处理处牛的领地,即我们如何快速知道哪些点要.. 阅读全文
posted @ 2014-03-10 23:07 Chellyutaha 阅读(491) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2112题意:有K个挤奶器,C头奶牛,每个挤奶器最多能给M头奶牛挤奶。每个挤奶器和奶牛之间都有一定距离。求使C头奶牛头奶牛需要走的路程的最大路程最小。分析:看到“最大的最小”这种字眼多半是二分枚举,容易想到二分枚举最小的最大路程,设其为max,那么接下来就是判定max合不合法了。故先把那些小于等于max的边加入二分图,如果这个二分图的多重匹配最多能匹配的数量恰恰等于奶牛数,那么说明所有奶牛都能挤到奶,即max合法,反之不合法。步骤:1、先floyd处理出每个奶牛和每个挤奶器之间的最短距离。2、二分枚举最小的最大路程max,并将<=max 阅读全文
posted @ 2014-03-10 22:33 Chellyutaha 阅读(143) 评论(0) 推荐(0) 编辑