2014.8.7 - 多校6

来源:互联网 发布:数据冗余错误解决方法 编辑:程序博客网 时间:2024/05/19 20:40

hdu-4923-Room and Moor

problem

1.给你一个只有0和1构成的数组a。

2.你自己搞一个长度和a一样的数组b。

3.其中b里面是[0, 1]的实数。bi<=b(i+1)

4.f(a, b) = sum((ai-bi)^2) 即平方和。

5.求 f(a, b) 的最小值。

think

1.去掉最前面的所有0和后面的所有1

2.如果格式是11100这样,即前面都是1后面都是0,那么bi全都取一样的值f可以最小。如有有x个1,y个0那么b取x/(x+y), 这f值是x*y/(x+y)。

3.根据2就这样分成几段。每段保存有几个1和几个0.如10 110 1100 1110就是1,1;2,1;2,2;3,1.

4.依次搞过去。搞成一个栈。不满足的就合并。合并就是x=x1+x2, y = y1 + y2.

5.最后栈里面的加起来。按照2的公式x*y/(x+y)。


hdu-4925-Apple Tree

problem

给你n*m的一片田,每个单位可以种玉米,也可以放肥料。

如果种了玉米,他的上下左右四个位置如果有x个位置放了肥料,那么他收获2^x个玉米。

每个位置只能放玉米或肥料,不能都放。

think

第一排 玉米 肥料 玉米 肥料……这样放

第二排 肥料 玉米 肥料 玉米……这样放


0 0
原创粉丝点击