นี่คือการติดตามขึ้นไปนับอาร์เรย์ที่ทำให้ชุดไม่ซ้ำกัน ความแตกต่างที่สำคัญคือนิยามของความเป็นเอกลักษณ์
พิจารณาอาร์เรย์ของความยาวA
n
อาร์เรย์มีจำนวนเต็มบวกเท่านั้น A = (1,1,2,2)
เช่น ให้เรากำหนดf(A)
เป็นชุดของผลรวมของทุกคนที่ไม่ว่างเปล่า subarrays A
ต่อเนื่องกันของ ในกรณีf(A) = {1,2,3,4,5,6}
นี้ ขั้นตอนในการผลิตf(A)
มีดังนี้:
subarrays ของAreA
จำนวนเงินของตนมี(1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
ชุดที่คุณได้รับจากรายการนี้จึงเป็น1,1,2,2,2,3,4,4,5,6
{1,2,3,4,5,6}
เราเรียกอาเรย์ที่A
ไม่ซ้ำกันถ้าไม่มีอาเรย์อื่นB
ที่มีความยาวเท่ากันเช่นนั้นf(A) = f(B)
ยกเว้นสำหรับอาเรย์ที่A
กลับด้าน เป็นตัวอย่างf((1,2,3)) = f((3,2,1)) = {1,2,3,5,6}
แต่ไม่มีความยาวอื่น ๆ3
ที่สร้างชุดของผลรวมเดียวกัน
งาน
งานสำหรับที่กำหนดn
และs
จะนับจำนวนอาร์เรย์ที่ไม่ซ้ำกันของความยาวนั้น คุณสามารถสรุปได้ว่าs
อยู่ระหว่างและ1
9
คุณจะต้องนับอาร์เรย์ที่องค์ประกอบที่มีทั้งจำนวนเต็มรับหรือs
s+1
เช่นถ้าs=1
อาร์เรย์ที่คุณกำลังนับเพียง แต่มีและ1
2
อย่างไรก็ตามคำจำกัดความของความเป็นเอกลักษณ์นั้นเกี่ยวข้องกับอาเรย์อื่นที่มีความยาวเท่ากัน ในฐานะที่เป็นตัวอย่างที่เป็นรูปธรรม[1, 2, 2, 2]
คือไม่[1, 1, 2, 3]
ซ้ำกันที่จะให้ชุดเดียวกันของผลรวมเป็น
คุณควรนับการย้อนกลับของอาเรย์รวมทั้งอาเรย์ด้วยตัวเอง
ตัวอย่าง
s = 1
คำตอบสำหรับ n = 2,3,4,5,6,7,8,9 คือ:
4, 3, 3, 4, 4, 5, 5, 6
สำหรับs = 1
อาร์เรย์ที่เป็นเอกลักษณ์ของความยาว 4 คือ
(1, 1, 1, 1)
(2, 1, 1, 2)
(2, 2, 2, 2)
s = 2
คำตอบสำหรับ n = 2,3,4,5,6,7,8,9 คือ:
4, 8, 16, 32, 46, 69, 121, 177
ตัวอย่างของอาร์เรย์ที่ไม่ซ้ำกันs = 2
คือ:
(3, 2, 2, 3, 3, 3).
นี้มีชุดเดียวกันของผลรวมเป็นทั้งสอง: และ(3, 2, 2, 2, 4, 3)
(3, 2, 2, 4, 2, 3)
s = 8
คำตอบสำหรับ n = 2,3,4,5,6,7,8,9 คือ:
4, 8, 16, 32, 64, 120, 244, 472
คะแนน
สำหรับรับn
รหัสของคุณควรเอาท์พุทคำตอบสำหรับทุกค่าของs
จากไป1
9
คะแนนของคุณคือมูลค่าสูงสุดn
ซึ่งจะเสร็จสมบูรณ์ในหนึ่งนาที
การทดสอบ
ฉันจะต้องเรียกใช้รหัสของคุณบนเครื่องอูบุนตูของฉันดังนั้นโปรดระบุคำแนะนำโดยละเอียดที่สุดเท่าที่จะทำได้เพื่อรวบรวมและเรียกใช้รหัสของคุณ
ลีดเดอร์บอร์ด
- n = 13โดย Christian Sievers ในHaskell (42 วินาที)
s
อะไร มันหมายถึงอะไร