120 likes | 271 Views
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
E N D
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