Editorial for IOI '04 P5 - Farmer
Submitting an official solution before solving the problem yourself is a bannable offence.
Let  be a field or a strip. Denote by 
 the number of cypresses in a field or a strip. If we denote by 
 the number of olive trees in a 
, we have: 
 if 
 is a field or 
 if 
 is a strip.
Consider now the following KNAPSACK problem: , such that 
 and 
, where 
 are the numbers of fields and strips respectively.
An optimum solution , 
, of this problem consists of a subset of 
 such that the total number of their cypresses is at most 
 and the total number of the included olive trees is maximized. However in general 
. If this is the case, then there is some 
 such that 
 and 
, for otherwise the optimum solution can be improved by the inclusion of 
, a contradiction. Therefore, adding a chain of 
 cypresses of 
 and its 
 olive trees to the optimum solution of the knapsack problem above, yields an optimum solution. The KNAPSACK problem can be solved optimally in 
 time by a Dynamic Programming algorithm.
Comments