Let be finite sets of integers whose intersection is not empty. For each non-empty , the size of the intersection of the sets in is a multiple of . What is the smallest possible number of elements which are in at least 50 sets?
Problem 862
Official solution
The answer is .
ף Rephrasing (cosmetic translation only, nothing happens yet). We encode with binary strings of length 100 . Write if has 1 's in every component does, and let denote the number of 1 's in .
Then for each , we let denote the number of elements such that . For example,
- denotes , so we know .
- denotes the number of elements in through but not so we know that .
- ...And so on.
So the problem condition means that translates to the statement
for any , plus one extra condition . And the objective function is to minimize the quantity
So the problem is transformed into an system of equations over (it's clear any assignment of values of can be translated to a sequence ( ) in the original notation).
Note already that:
Proof. If we have found a valid assignment of values to for , then we can always arbitrarily assign values of for , note terms increase by 1 while one term decreases by . When , only decreases by 50 .
Now, given a valid assignment, we can modify it as follows:
- First apply pushdowns on until ;
- Then we may apply pushdowns on each with until ;
- Then we may apply pushdowns on each with until ;
- . . . and so on, until we have for .
Hence we get and for all . However, by downwards induction on , we also have
since and are both strictly less than . So in fact , and we're done.
Remark. The fact that push-downs actually don't change shows that the equality case we described is far from unique: in fact, we could have made nearly arbitrary sub-optimal decisions during the greedy algorithm and still ended up with an equality case. For concrete example, the construction
works fine as well (where we arbitrarily chose 500 at the start, then used the greedy algorithm thereafter)