ความจุ (capacity)

1130

ข้อนี้นิยามความจุของเซต SS เป็น

  • ค่าของสมาชิกตัวที่มากกว่าลบด้วยสมาชิกตัวที่น้อยกว่าสำหรับ S=2|S|=2
  • ผลรวมของความจุของสับเซตของ SS ทุกสับเซตที่มีสมาชิก N1N − 1 ตัว สำหรับ S>2|S|>2

และให้หาความจุของเซ็ต SS ที่มีขนาด S=N10000|S|=N \leq 10000

ข้อสังเกตหลักของข้อนี้คือเราสามารถคำนวณผลรวมของความจุของทุกสับเซ็ตที่มีขนาด kk (k3k\geq 3) ได้หากเราทราบผลรวมความจุของทุกสับเซตที่มีขนาด k1k-1

ให้ผลรวมความจุของสับเซ็ตขนาด kk ทุกอันเป็น MkM_k

สังเกตว่าทุกเซ็ตขนาด k1k-1 จะเป็นสับเซ็ตของสับเซ็ตขนาด kk จำนวน N(k1)N-(k-1) อันพอดี (เพราะเลือกอีก 1 สมาชิกของ SS ที่เหลืออยู่มาเพิ่ม จะมี N(k1)N-(k-1) ตัวเลือก) ดังนั้น Mk=Mk1(N(k1))M_k = M_{k-1} (N-(k-1))

สำหรับ k=2k=2 เราสามารถคำนวณ M2M_2 ได้โดยตรงโดยการคำนวณค่ามากกว่าลบค่าน้อยกว่าสำหรับทุกคู่ของสมาชิกของ SS ในเวลา O(N2)\mathcal{O}(N^2)

จากนั้นคำนวณ M3,M4,,MNM_3, M_4, \dots, M_N ได้ตามสูตร Mk=Mk1(N(k1))M_k = M_{k-1} (N-(k-1)) ซึ่งใช้เวลา O(N)\mathcal{O}(N)

ทั้งหมดจึงใช้เวลา O(N2)\mathcal{O}(N^2) ซึ่งเร็วเพียงพอสำหรับข้อนี้

(เพิ่มเติม: ขั้นตอนการหา M2M_2 สามารถลดเวลาเป็น O(NlogN)\mathcal{O}(N \log N) โดยการ sort แล้วนับว่าแต่ละสมาชิกมีกี่สมาชิกที่มากกว่าหรือน้อยกว่าแทนการพิจารณาทุกคู่โดยตรง แต่นั่นไม่จำเป็นสำหรับข้อนี้)