मैं पेग ऑनलाइन न्यायाधीश में एक समस्या पर अटक गया है हल करने के लिए, डोमिनोज, जिसे आप यहां प्राप्त कर सकते हैं कहा जाता है:प्वाइंटर इस चुनौतीपूर्ण गतिशील प्रोग्रामिंग कार्य
http://wcipeg.com/problem/domino
संक्षिप्त विवरण:
हमें क्षैतिज रूप से व्यवस्थित विभिन्न ऊंचाई और स्थानों के साथ डोमिनोज़ की एक सूची दी गई है। ऊंचाई एच के साथ स्थिति x पर एक डोमिनोज़, एक बार दाईं ओर धक्का दिया जाता है, सभी डोमिनोज़ को पदों x + 1, x + 2, ..., x + h दाएं तरफ भी दस्तक देगा। इसके विपरीत, बाईं ओर धक्का दिया गया एक ही डोमिनोज़ सभी डोमिनोज़ को पदों x-1, x-2, ..., x-h बाईं ओर स्थित करेगा।
सभी डोमिनोज़ को कम करने के लिए हम कितने धक्का दे सकते हैं?
उदाहरण:
|
| |
| | | | | |
1 2 3 4 5 6 7 8
उत्तर है। स्थान 1 पर डोमिनोज़ को दाएं स्थान पर, बाईं ओर स्थान 8 पर डोमिनोज़ दबाएं।
प्रतिबंध:
इनपुट एक एकल पूर्णांक एन ≤ 100,000 के साथ शुरू होता है, डोमिनो की संख्या, पूर्णांक एन जोड़े के बाद। पूर्णांक की प्रत्येक जोड़ी एक डोमिनोज़ के स्थान और ऊंचाई का प्रतिनिधित्व करती है। (1 ≤ स्थान ≤ 1,000,000,000, 1 ≤ ऊंचाई ≤ 1,000,000,000) कोई भी दो डोमिनोज़ में एक ही स्थान पर होंगे।
मेमोरी सीमा: 64MB
समय सीमा: 1.00s
नोट: परीक्षण डेटा के 60% है एन 5000.
≤ वहाँ एक जानवर बल समाधान जो समस्या का हल है केवल 60% इनपुट के लिए।
ऐसा लगता है कि सबसे बड़ा इनपुट आकार के लिए एसी प्राप्त करने के लिए गतिशील प्रोग्रामिंग का उपयोग करके एक सबक्वाड्रैटिक, या यहां तक कि रैखिक समाधान होना चाहिए।
किसी भी संकेत की सराहना की जाएगी।
लेखक, जो मैं काफी नहीं समझ सकता है, के मामले में यह उपयोगी है से एक संकेत है:
(एन) एक पुनरावर्ती समारोह च करें कि चाल की न्यूनतम # तख्ता पलट करने के लिए आवश्यक देता है पहले एन डोमिनोज़।
अब आप f (n) से f के पिछले मानों से कैसे संबंधित हैं? डोमिनोज़ # एन में दो विकल्प हैं: बाईं ओर जाएं (जिस स्थिति में यह अन्य डोमिनोज़ को ऊपर छोड़ देता है) या दाएं (जिस स्थिति में इसके बाईं ओर एक और डोमिनोज़ इसे ऊपर छोड़ देता है)। वहां से काम कर रहे आज़माएं।
धन्यवाद!
अधिकतम डोमिनोज़ और उनकी ऊंचाई और स्थानों पर सीमाओं का उल्लेख करना महत्वपूर्ण है। 64 एमबी की स्मृति सीमा के साथ, इन बाधाओं, कुछ दृष्टिकोणों को रद्द करते हैं। –
अच्छा बिंदु, इनपुट आकार की बाधाओं को जोड़ा। –