ตกลง. อัลกอริทึม DP ดูเหมือนจะซับซ้อนโดยไม่จำเป็น หลังจากอ่านความคิดเห็นแล้วฉันคิดว่านี่อาจช่วยแก้ปัญหารุ่น Monotonic ได้ (แต่ฉันไม่ได้ตรวจสอบทุกรายละเอียด)
อันดับแรกสมมติว่าแต่ละโดยที่เป็นส่วนที่สำคัญเป็นส่วนที่เป็นเศษส่วน สมมติว่าถูกปัดเศษเป็นโดยที่เป็นจำนวนเต็มแบบไม่ลบ (แน่นอนโดยทั่วไปสามารถเป็นค่าลบได้ แต่เราสามารถเลื่อนเพื่อให้เล็กที่สุดคือ 0)xi=⌊xi⌋+{xi}xi=⌊xi⌋+{xi}⌊xi⌋⌊xi⌋{xi}{xi}xixi⌊xi⌋+vi⌊xi⌋+vivivivivivivi
ตอนนี้ให้พิจารณาค่าใช้จ่ายสำหรับคู่ ,เมื่อทำการปัดเศษนี้ ค่าใช้จ่ายควรจะเป็นxixixjxj
||vi−vj+⌊xi⌋−⌊xj⌋|−|{xi}−{xj}+⌊xi⌋−⌊xj⌋||
||vi−vj+⌊xi⌋−⌊xj⌋|−|{xi}−{xj}+⌊xi⌋−⌊xj⌋||
นิพจน์นั้นซับซ้อนเนื่องจากค่าสัมบูรณ์ อย่างไรก็ตามโปรดสังเกตว่าเรามีความน่าเบื่อดังนั้นสิ่งที่อยู่ภายในค่าสัมบูรณ์ทั้งสองด้านควรมีเครื่องหมายเดียวกัน เนื่องจากเรามีค่าสัมบูรณ์ด้านนอกมันไม่สำคัญว่าเครื่องหมายนั้นคืออะไรการแสดงออกเพียงลดความซับซ้อนลง
|vi−vj−({xi}−{xj})|
|vi−vj−({xi}−{xj})|
จากนี้ไปเราไม่คิดว่าวิธีการแก้ปัญหาเป็นแบบโมโนโทนิก แต่เราเปลี่ยนวัตถุประสงค์เพื่อลดผลรวมของคำศัพท์ข้างต้นสำหรับคู่ทั้งหมด หากการแก้ปัญหานี้เกิดขึ้นเป็นเสียงโมโนแน่นอนว่ามันเป็นทางออกที่ดีที่สุดสำหรับเวอร์ชั่นโมโนโทน (คิดว่าสิ่งนี้เป็น: ปัญหาดั้งเดิมมีโทษอนันต์เมื่อวิธีแก้ปัญหาไม่ใช่แบบโมโนโทนิกปัญหาใหม่มีโทษน้อยกว่าหากระบบโมโนโทนิกชนะแม้ในเวอร์ชั่นใหม่จะต้องเป็นวิธีแก้ปัญหาของโมโนโทนิก)
ตอนนี้เราต้องการที่จะพิสูจน์ได้ว่าถ้า , ในการแก้ปัญหาที่ดีที่สุดที่เราจะต้องมีv_j{xi}>{xj}{xi}>{xj}vi≥vjvi≥vj
สมมตินี้ไม่เป็นความจริงที่ว่าเรามีคู่แต่<v_j เราจะแสดงให้เห็นว่าถ้าเราสลับทางออกจะดีขึ้นอย่างเคร่งครัด{xi}>{xj}{xi}>{xj}vi<vjvi<vjvivi vjvj
ก่อนอื่นเราเปรียบเทียบคำระหว่างกับที่นี่เป็นที่ชัดเจนว่าการแลกเปลี่ยนนั้นดีกว่าอย่างแน่นอนเพราะในเวอร์ชันที่ไม่มีการสลับและมีเครื่องหมายเดียวกันแน่นอน value จะเป็นผลรวมของค่าสัมบูรณ์ทั้งสองiijjvi−vjvi−vj{xj}−{xi}{xj}−{xi}
ตอนนี้สำหรับการใด ๆเราเปรียบเทียบผลรวมของคู่และk) นั่นคือเราต้องเปรียบเทียบkk(i,k)(i,k)(j,k)(j,k)
|vi−vk−({xi}−{xk})|+|vj−vk−({xj}−{xk})||vi−vk−({xi}−{xk})|+|vj−vk−({xj}−{xk})|และ.|vj−vk−({xi}−{xk})|+|vi−vk−({xj}−{xk})||vj−vk−({xi}−{xk})|+|vi−vk−({xj}−{xk})|
ใช้, , ,เพื่อแสดงถึงข้อตกลงสี่ภายในค่าสัมบูรณ์ก็เป็นที่ชัดเจนว่า D ยังเป็นที่ชัดเจนว่า. เรารู้. รับผลรวมของทั้งหมดเรารู้ว่าการสลับจะดีกว่าเท่านั้นAABBCCDDA+B=C+DA+B=C+D|A−B|≥|C−D||A−B|≥|C−D||A|+|B|≥|C|+|D||A|+|B|≥|C|+|D|xkxk
โปรดสังเกตว่าตอนนี้เรามีทางออกสำหรับ Monotonic floor / ceil version: จะต้องมี threshold เมื่อใหญ่กว่าเสมอเมื่อมีขนาดเล็กลงเสมอเมื่อมันมีค่าเท่ากัน แต่คุณภาพของโซลูชันขึ้นอยู่กับจำนวนเท่านั้น เราแจกแจงโซลูชันทั้งหมดเหล่านี้และเลือกโซลูชันที่มีฟังก์ชันวัตถุประสงค์น้อยที่สุด (โซลูชั่นทั้งหมดเหล่านี้จำเป็นต้องมีโมโนโทน){xi}{xi}
ในที่สุดเราก็อยากจะไปที่ปัญหาเลขจำนวนเต็มเดียว เราสามารถพิสูจน์ได้ว่าทางออกที่ดีที่สุดเหมือนกับ Monotonic floor / ceil version
ในฐานะที่เราสันนิษฐานที่เล็กที่สุดเป็น 0 กลุ่มทั้งหมด 's ตามของพวกเขา ' s และเรียกกลุ่มพวกเขา\} ครั้งแรกที่เราจะพิสูจน์ให้เห็นว่าไม่มีกลุ่มว่างเปล่า แต่นี้เป็นเรื่องง่ายถ้ากลุ่ม -th ว่างสำหรับการใด ๆเพียงแค่ให้v_i-1 มันง่ายที่จะเห็นฟังก์ชั่นวัตถุประสงค์ปรับปรุงอยู่เสมอ (โดยทั่วไปเนื่องจาก )vivixixivivi0,1,2,...,max{vi}kvi>kvi=vi−1|{xi}−{xj}|<1
ตอนนี้เราจะต้องพิสูจน์ว่าค่าเฉลี่ยของในกลุ่มเป็นอย่างน้อยเฉลี่ยของในกลุ่มบวก1/2หากนี่ไม่เป็นจริงเพียงแค่ปล่อยให้สำหรับทั้งหมดการคำนวณอีกครั้งแสดงให้เห็นว่าการทำงานของวัตถุประสงค์ดีขึ้น{xi}k+1{xi}k1/2vi=vi−1vi>k
เนื่องจากค่าเฉลี่ยของอยู่ในช่วงจึงมีอยู่ไม่เกินสองกลุ่มซึ่งสอดคล้องกับรุ่นพื้น / เพดาน{xi}[0,1)