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
第一排 玉米 肥料 玉米 肥料……这样放
第二排 肥料 玉米 肥料 玉米……这样放