pptx - HKOI

advertisement
HKOI 2014 Senior
Pharmaceutical Company
Problem Prepared by : Gary Wong
Problem
• Find the maximum number of capsules they
can produce
• Find the earliest possible time for the workers
to finish the synthesis process in such case
Solution 1
• Write a function to achieve this
– given the time the workers finished the synthesis
work, find the number of capsules they can
produce
• Exhaust the finishing time for X workers, from
1 to T
• Complexity = O( T * ( X + Y ) )
• Score = 50 
Observation 1
• If the synthesis process is too long, the Y workers
cannot finish the capsuling process
• If the synthesis process is too short, the number
of capsules will not be maximized
• There must be a critical time slot (s – t), such that
– More than t units of time, the capsuling process
cannot be finished
– Less than s units of time, the number of capsules will
not be optimal
Possible Idea 1
• One might use binary search to locate one
terminal of that time slot t
• Is t units of time the answer?
Tricky Part
• In that time slot, the number of capsules can
be produce might be identical
• Recalled from the problem statement
– “If there are multiple solutions that can maximize
the number of capsules, output the earliest time
for the shift”
• Obviously finding t is not good enough
• What should we do to find s?
Possible Idea 2
• After the binary search, we’ve already known
the optimal number of pills we can make
• Studying the property of s
– Using less than s units of time, the number of pills
apparently is not maximum
– Using time from s to t, the number of pills is
identical
• In other words, s is another critical point
Solution 2
• Write a function to achieve this
– given the time the workers finished the synthesis
work, find the number of capsules they can
produce
•
•
•
•
Use binary search to locate t from 1 to T
Use binary search to locate s from 1 to t
Complexity = O((X + Y) ln T)
Score = 100
Observation 2
• Using two binary search is not convenient
enough
• For example,
– X = 1, he need 3 units of time to produce a pill
– Giving him 3, 4, 5 units of time, the number of pill
he could produce is same
• Once we locate the time of t
• Find x = min(t mod Ta[i])
• The optimal time is actually t - x
Solution 3
• Write a function to achieve this
– given the time the workers finished the synthesis
work, find the number of capsules they can
produce
•
•
•
•
•
Use binary search to locate t from 1 to T
Find the minimum modulus
Output t – x and the pills can be made
Complexity = O((X + Y) * ln T)
Score = 100% 
Tricky Case
• If the time is only enough to produce 0 pill,
what should we output?
– (0, 0)?
• No!
• As the boss is very mean, X workers need to
prepare and clean up before Y workers arrive

• END
Download