Greedy beats DP this time...
I tried several DP solutions first, but all failed with RE\TLE. If you ‘feel‘ the problem, Greedy should be working:
(A solution from discussion)
def getPivot(n): while n > 0: if n % 3 == 0: break; else: n -= 5 return n T = input() for i in xrange(T): N = int(input()) pivot = getPivot(N) if pivot < 0: print -1 else: str = ‘‘ repeat = pivot / 3 while repeat > 0: str += ‘555‘ repeat -= 1 repeat = (N - pivot) / 5 while repeat > 0: str += ‘33333‘ repeat -= 1 print str
时间: 2024-10-27 17:34:54