สมมติว่าเรามีค่า n ให้พิจารณาอาร์เรย์ nums ที่มีองค์ประกอบ n โดยที่ arr[i] =(2*i)+1 สำหรับ i ทั้งหมด ในการดำเนินการครั้งเดียว เราสามารถเลือกดัชนี x และ y ได้ 2 ตัว โดยที่ 0 <=x, y
ดังนั้น ถ้าอินพุตเป็น n =4 ผลลัพธ์จะเป็น 4 ส่วน n อาร์เรย์คือ [1,3,5,7] ตอนนี้หลังจากดำเนินการครั้งแรก เราสามารถสร้างอาร์เรย์ได้เช่น [2,3,5,6 ] หลังจากการผ่าตัดครั้งที่สอง เราสามารถทำได้ [3,3,5,5] จากนั้นหลังจากครั้งที่สาม [4,3,4,5] และสุดท้าย [4,4,4,4] ตอนนี้ทุกอย่างเท่าเทียมกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ตอบ:=0
-
ถ้า n เท่ากับ 1 แล้ว
-
กลับมาอีกครั้ง
-
-
q:=ผลหารของ (n/2) -1
-
เจ:=1
-
ในขณะที่ q>=0, ทำ
-
ans:=ans + (n-j)
-
q :=q - 1
-
เจ :=เจ + 2
-
-
กลับมาอีกครั้ง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def solve(n): ans=0 if n==1: return ans q=(n//2)-1 j=1 while q>=0: ans=ans+(n-j) q-=1 j+=2 return ans n = 4 print(solve(n))
อินพุต
4
ผลลัพธ์
4