มี n ออปปอเรชัน แต่ละอันเป็น: พิมพ์ 'x', Copy ทั้งหมด, หรือ Paste หาจำนวน 'x' สูงสุด
ตัวอย่าง: n = 12 → 81
แนวทาง (Pattern Recognition)
กลยุทธ์ที่ดีที่สุด: พิมพ์ 3 ตัว → Copy → Paste × 2 → Copy → Paste × 2 → ... (บล็อก 3 ขั้น: Copy, Paste, Paste ให้คูณ 3)
ขั้นตอน
- ถ้า
n <= 4คืน n - เริ่ม
v=6, x=3, i=5, j=0 - วนจน
i == n:v += x; i += 1; j += 1j % 3 == 0:x = int(x * 1.5)(Copy)j % 3 == 1: ไม่ทำอะไร (Paste)j % 3 == 2:x *= 2(Paste)
- คืน
v
ตัวอย่างโค้ด
class Solution:
def solve(self, n):
if n <= 4:
return n
v = 6
x = 3
i = 5
j = 0
while i != n:
v += x
i += 1
j += 1
if j % 3 == 0:
x = int(x * 1.5)
elif j % 3 == 1:
pass
else:
x *= 2
return v
ob = Solution()
n = 12
print(ob.solve(n)) # 81
อินพุต
12
เอาต์พุต
81