ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟ دادهﺳﺎﺧﺘﺎرﻫﺎ و ﻣﺒﺎﻧ اﻟ ﻮرﯾﺘﻢﻫﺎ )(۴٠-٢۵۴ Data Structures and Fundamentals of Algorithms داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﺪرس :ﻣﺤﻤﺪ ﻗﺪﺳ ﻣﻮﻋﺪ ارﺳﺎل ٢٠ :ﻣﻬﺮ ١٣٩٣ ﺗﻤﺮﯾﻦ ﺷﻤﺎرهی ١ .١رواﺑﻂ ﺑﺎزﮔﺸﺘ زﯾﺮ را ﺣﻞ ﮐﻨﯿﺪ) .ﻣﺮﺗﺒﻪی زﻣﺎﻧ آنﻫﺎ را ﺑﻪ دﺳﺖ آورﯾﺪ(. اﻟﻒ( T (١) = ١ ب( ﺑﺮای ﻣﻘﺎدﯾﺮ ﮐﻮﭼ T (i) + ٣n, ∑n−١ i=١ T (n) = ١, n ١ n = ).T (n lg n , √ .T (n) = T ( n٣ ) + T ( n۶ ) + n ج( )T (n) = T (n/٣) + T (٢n/٣) + O(n √ د( )T (n) = T (n/٢ + n) + O(n √ ه( )T (n) = n + T (n − ١ و( )T (n) = ٢T (n/ lg n) + O(n ی( )T (n) = T (n − ١) + O(lg n .٢اﻟﻒ( آﯾﺎ ﺗﺎﺑ !⌉ ⌈lg nدارای ﮐﺮان ﭼﻨﺪﺟﻤﻠﻪای اﺳﺖ؟ !⌉ ⌈lg lg nﭼﻄﻮر؟ ب( ﮐﺪام ﺗﺎﺑ ﺑﻪ ﻃﻮر ﻣﺠﺎﻧﺒ ﺑﺰرگﺗﺮ اﺳﺖ lg(lg∗ n) ،ﯾﺎ )lg∗ (lg n؟ ج( ﺗﺎﺑ ﻫﺎی زﯾﺮ را از ﻧﻈﺮ درﺟﻪ ﭘﯿﭽﯿﺪﮔ ﻣﺠﺎﻧﺒ ﺑﺎ ﻫﻢ ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ و ﺗﺮﺗﯿﺐ آنﻫﺎ را از ﮐﻮﭼ ﺑﻪ ﺑﺰرگ ﻣﺮﺗﺐ ﮐﻨﯿﺪ) .ﻫﻤﺮاه ﺑﺎ ﺗﻮﺿﯿ ﻣﺨﺘﺼﺮ( n! ٣n lg nlg n n٢ Σnk=١ ١k √ lg n n ٨ lg n! nlg lg n n lg n lg n .٣درﺳﺘ ﯾﺎ ﻧﺎدرﺳﺘ ﻫﺮﯾ از ﻣﻮارد زﯾﺮ را ﺑﺮرﺳ ﮐﻨﯿﺪ . ) )) f (n) ∈ o(n) ⇒ 2f (n) ∈ o(2g(nاﻟﻒ ))) f (n) ∈ O(f 2 (nب )) f (n) ∈ θ(f ( n2 )ج ))f (n) + O(f (n)) ∈ θ(f (n )د )f (n) = |n2 sin(n)| ⇒ f (n) ∈ O(n) or f (n) ∈ Ω(n )ه ∅ ≠ ))o(g(n)) ∩ ω(g(n )و ز( آﯾﺎ ﻫﺮ دو ﺗﺎﺑ ) f (nو ) g(nرا ﻣﯿﺘﻮان ﺗﻮﺳﻂ ﺗﻮاﺑ ﻣﺠﺎﻧﺒ ﻣﻘﺎﯾﺴﻪ ﮐﺮد ؟ )iff1 (n), f2 (n), ..., fn (n) ∈ θ(n) ⇒ Σni=1 fi (n) ∈ θ(n )م ))iff1 (n), f2 (n), ..., fn (n) ∈ θ(n) ⇒ Σni=1 fi (n) ∈ O(Maxni=1 fi (n )ن ١ .۴ﻣﺴﺎﺋﻞ زﯾﺮ را از ﮐﺘﺎب درﺳ ﺣﻞ ﮐﻨﯿﺪ )آ( ﺻﻔﺤﻪ ۵٠ﺳﻮال ١.٢-٢ )ب( ﺻﻔﺤﻪ ۵٠ﺳﻮال ۶.٢-٢ )ج( ﺻﻔﺤﻪ ١٢۶ﺳﻮال ۵.٣ ١٣٩٣ .۵وزﻧﻪ ﺑﺎ وزنﻫﺎی ﻣﺘﻔﺎوت و ﯾ ﺗﺮازو در اﺧﺘﯿﺎر دارﯾﻢ .ﻣﯿﺨﻮاﻫﯿﻢ ﺑﺎ ﺣﺪاﻗﻞ ﺗﻌﺪاد وزنﮐﺸ ﺳﻨ ﯿﻦﺗﺮﯾﻦ وزﻧﻪ و ﻫﻤﭽﻨﯿﻦ دوﻣﯿﻦ ﺳﻨ ﯿﻦﺗﺮﯾﻦ وزﻧﻪ را ﺑﺪﺳﺖ آورﯾﻢ .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻓﺮضﻫﺎی اﻟﻒ و ب ﺣﺪاﻗﻞ ﺗﻌﺪاد وزنﮐﺸﯿﻬﺎ را ﺑﺪﺳﺖ آورﯾﺪ. ﺗﺮازو ﻣﻘﺎﯾﺴﻪ ﮐﺮد. اﻟﻒ( در ﻫﺮ ﻣﺮﺣﻠﻪ ﺗﻨﻬﺎ ﻣﯿﺘﻮان وزن دو وزﻧﻪ را ﺑﻪ ﮐﻤ ب( در ﻫﺮ ﻣﺮﺣﻠﻪ ﻣﯿﺘﻮان وزن ﺗﻌﺪاد دﻟﺨﻮاﻫ ورزﻧﻪ را ﺑﻪ ﮐﻤ ﺗﺮازو ﻣﻘﺎﯾﺴﻪ ﮐﺮد. در ﻫﺮ ﻓﻘﺮه ،روش ﺧﻮد را ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ ﺗﻮﺿﯿ داده و ﺗﻌﺪاد دﻗﯿﻖ ﻣﻘﺎﯾﺴﻪﻫﺎ را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ. .۶ﮐﺎﺷ ﻫﺎﯾ دارﯾﻢ ﮐﻪ ﻫﺮﯾ ﻣﻄﺎﺑﻖ ﺷ ﻞ زﯾﺮ از ﺳﻪ ﻗﻄﻌﻪ ﺑﺎ اﻧﺪازه ١ × ١ﺗﺸ ﯿﻞ ﺷﺪه اﻧﺪ . اﺗﺎﻗ ﻣﺮﺑﻌ ﺷ ﻞ ﺑﺎ اﺑﻌﺎد n ) n × nﺗﻮاﻧ از ٢اﺳﺖ( دارﯾﻢ ﮐﻪ ﻣﯿﺨﻮاﻫﯿﻢ ﮐﻒ آن را ﺑﺎ ﭼﻨﯿﻦ ﮐﺎﺷ ﻫﺎﯾ ﺑﭙﻮﺷﺎﻧﯿﻢ. در ﮐﻒ اﯾﻦ اﺗﺎق ﺣﻔﺮه ای ﺑﻪ اﺑﻌﺎد ١ × ١وﺟﻮد دارد ﮐﻪ ﻧﺒﺎﯾﺪ روی آن را ﺑﺎ ﮐﺸ ﺑﭙﻮﺷﺎﻧﯿﻢ . در ﺷ ﻞ ﻫﺎی زﯾﺮ اﺗﺎﻗ ﺑﺎ اﺑﻌﺎد ٨ × ٨ﻗﺒﻞ و ﺑﻌﺪ از ﮐﺎﺷ ﮐﺎری ﻧﺸﺎن داده ﺷﺪه اﺳﺖ .ﻣﺮﺑ ﺳﯿﺎه ﻣ ﺎن ﺣﻔﺮه ای ﮐﻪ ﻧﺒﺎﯾﺪ ﭘﻮﺷﯿﺪه ﺷﻮد را ﻧﺸﺎن ﻣﯿﺪﻫﺪ . • اﻟﻒ( اﻟ ﻮرﯾﺘﻤ اراﺋﻪ دﻫﯿﺪ ﮐﻪ اﺑﻌﺎد اﺗﺎق )(nرا ﮔﺮﻓﺘﻪ و ﻋﻤﻞ ﮐﺎﺷ ﮐﺎری را اﻧﺠﺎم دﻫﺪ . • ب( راﺑﻄﻪ ﺑﺎزﮔﺸﺘ اﻟ ﻮرﯾﺘﻢ ﺧﻮد را ﺑﺪﺳﺖ آورده و ﺣﻞ ﻧﻤﺎﯾﯿﺪ و ﻣﺮﺗﺒﻪ زﻣﺎﻧ اﻟ ﻮرﯾﺘﻢ را ﺑﺮ ﺣﺴﺐ nو ﺑﺎ اﺳﺘﻔﺎده از ﻧﻤﺎدﻫﺎی ﻣﺠﺎﻧﺒ ﺑﻨﻮﯾﺴﯿﺪ. ٢ .٧ﯾ ﺗﻘﺎﻃ ﺑﺎ nﺧﯿﺎﺑﺎن ﻣﻨﺘﻬ ﺑﻪ آن دارﯾﻢ .ﻣ ﺧﻮاﻫﯿﻢ ﺑﻮﺳﯿﻠﻪ ﯾ ﭼﺮاغ راﻫﻨﻤﺎی ﭼﻨﺪزﻣﺎﻧﻪ ،ﺑﺎر ﺗﺮاﻓﯿ ﮐﻨﺘﺮل ﮐﻨﯿﻢ .ﺑﺮای ﻫﺮ دو ﺧﯿﺎﺑﺎن y ، xﻣﻨﺘﻬ ﺑﻪ اﯾﻦ ﺗﻘﺎﻃ ،ﻻزم اﺳﺖ در دﺳﺖﮐﻢ ﯾ اﯾﻦ ﺗﻘﺎﻃ را از زﻣﺎنﻫﺎی اﯾﻦ ﭼﺮاغ راﻫﻨﻤﺎ، اﻣ ﺎن ﻋﺒﻮر اﻣﻦ ﺑﯿﻦ y ،xوﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ .ﻋﺒﻮر اﻣﻦ ﻋﺒﻮری اﺳﺖ ﮐﻪ در آن اﺟﺎزه ﻋﺒﻮر از ﺧﯿﺎﺑﺎﻧ ﻣﺜﻞ zﺑﻪ ﺧﯿﺎﺑﺎﻧ ﻣﺜﻞ tﮐﻪ ﻋﺒﻮر ﻫﻤﺰﻣﺎن ﺧﻮدرو از آن ﻣﻨﺠﺮ ﺑﻪ ﺗﺼﺎدف ﺑﺎ ﺧﻮدروی ﻋﺒﻮری از y ، xﻣﯿﺸﻮد ،داده ﻧﺸﺪه ﺑﺎﺷﺪ .دﻗﺖ ﮐﻨﯿﺪ ﮐﻪ ﺧﯿﺎﺑﺎنﻫﺎی ﻣﻨﺘﻬ ﺑﻪ ﭼﻬﺎرراه دوﻃﺮﻓﻪ ﻫﺴﺘﻨﺪ ،ﺑﻨﺎﺑﺮاﯾﻦ ﻋﺒﻮر از xﺑﻪ yﻣﻌﺎدل ﻋﺒﻮر از yﺑﻪ xﻧﯿﺴﺖ. ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺣﺪاﻗﻞ ﺗﻌﺪاد زﻣﺎنﻫﺎی اﯾﻦ ﭼﺮاغ راﻫﻨﻤﺎ را ﻣﺤﺎﺳﺒﻪ ﮐﻨﺪ. ورودی: در ﺧﻂ اول ،ورودی ﺷﺎﻣﻞ ) (nﺗﻌﺪاد ﺧﯿﺎﺑﺎن ﻫﺎ و ) (mﺗﻌﺪاد ﻋﺒﻮرﻫﺎی ﺣﺎدﺛﻪﺳﺎز اﺳﺖ . ورودی ﺑﺎ mﺧﻂ دﻧﺒﺎل ﻣﯿﺸﻮد ﮐﻪ در ﻫﺮ ﺧﻂ ۴ﻋﺪد t ،z ، y ،xداده ﺧﻮاﻫﺪ ﺷﺪ؛ ﺑﺪﯾﻦ ﻣﻌﻨ ﮐﻪ اﮔﺮ ﻫﻤﺰﻣﺎن ﺑﯿﻦ دو ﺧﯿﺎﺑﺎن y،xو دو ﺧﯿﺎﺑﺎن t ،zﻋﺒﻮر اﻧﺠﺎم ﮔﯿﺮد ،ﺣﺎدﺛﻪﺳﺎز ﺧﻮاﻫﺪ ﺑﻮد. ﺧﺮوﺟ : در ﺗﻨﻬﺎ ﺳﻄﺮ ﺧﺮوﺟ ،ﺣﺪاﻗﻞ ﺗﻌﺪاد زﻣﺎنﻫﺎی اﯾﻦ ﭼﺮاغ را ﭼﺎپ ﮐﻨﯿﺪ ﻣﺤﺪودﯾﺖﻫﺎ n ≤ ١٢ m ≤ ١٠٠٠ ورودی و ﺧﺮوﺟ ﻧﻤﻮﻧﻪ: stdout stdin 2 4 1 1 3 2 4 stdout stdin 4 3 2 3 2 1 3 2 4 3 2 1 3 4 ٣ 2 .٨ )آ( ﺳﺪ nﻃﺒﻘﻬﺎی دﯾﻤﻮﻧﺎ ،ﺑﺰرﮔﺘﺮﯾﻦ ﺳﺪ ﺑﻨﺎ ﺷﺪه در ﺳﺮزﻣﯿﻦﻫﺎی اﺷﻐﺎﻟ اﺳﺖ .ﻣ داﻧﯿﻢ در ﭘﺸﺖ ﻃﺒﻘﻪ iام اﯾﻦ ﺳﺪ، Wiﻟﯿﺘﺮ آب وﺟﻮد دارد .ﻫﻤﭽﻨﯿﻦ ﻣ داﻧﯿﻢ ﻃﺒﻘﻪ iام ﻗﺎدر ﺑﻪ ﺗﺤﻤﻞ Liﻟﯿﺘﺮ آب اﺳﺖ و اﮔﺮ ﻣﯿﺰان آب ﭘﺸﺖ آن ﺑﯿﺸﺘﺮ از اﯾﻦ ﺣﺪ ﺷﻮد ،آن ﻃﺒﻘﻪ ﺗﺨﺮﯾﺐ ﺷﺪه و ﺗﻤﺎم آبﻫﺎی ﻣﻮﺟﻮد ﭘﺸﺖ آن ﺑﻪ ﻃﺒﻘﻪای ﮐﻪ ﺑﻼﻓﺎﺻﻠﻪ ﭘﺎﯾﯿﻦﺗﺮ ﻗﺮار دارد ،ﻣﻨﺘﻘﻞ ﻣ ﺷﻮد. ﮔﺮوهﻫﺎی ﻣﺒﺎرز ﻓﻠﺴﻄﯿﻨ ﻗﺼﺪ دارﻧﺪ ﭘﺎﯾﯿﻦﺗﺮﯾﻦ ﻃﺒﻘﻪ اﯾﻦ ﺳﺪ )ﻃﺒﻘﻪ nام( را ﺗﺨﺮﯾﺐ ﮐﻨﺪ .ﻣ داﻧﯿﻢ ﺗﺨﺮﯾﺐ ﻃﺒﻘﻪ iام ﺳﺪ ﺑﺎ ﻣﻮاد ﻣﻨﻔﺠﺮه Pi ،واﺣﺪ ﻫﺰﯾﻨﻪ دارد؛ از ﻃﺮﻓ دوﺳﺘﺎن ﻓﻠﺴﻄﯿﻨ ﻣﺎ ﺑﺎ ﻣﺤﺪودﯾﺖ ﺑﻮدﺟﻪ روﺑﺮو ﻫﺴﺘﻨﺪ. ﺷﻤﺎ ﺑﺮای ﮐﻤ ﺑﻪ ﮔﺮوهﻫﺎی ﻣﺒﺎرز ﻓﻠﺴﻄﯿﻨ ﺑﻪ ﻣﻨﺎﻃﻖ اﺷﻐﺎﻟ اﻋﺰام ﺷﺪهاﯾﺪ .اﻟ ﻮرﯾﺘﻤ )ﺑﻬﯿﻨﻪ( اراﺋﻪ دﻫﯿﺪ ﮐﻪ ﺣﺪاﻗﻞ ﻫﺰﯾﻨﻪ ﻣﻤ ﻦ ﺑﺮای ﺗﺨﺮﯾﺐ ﭘﺎﯾﯿﻦﺗﺮﯾﻦ ﻃﺒﻘﻪ ﺳﺪ را ﺑﯿﺎﺑﺪ. درﺳﺘ اﻟ ﻮرﯾﺘﻢ ﺧﻮد را اﺛﺒﺎت ﮐﻨﯿﺪ. )ب( اﻟ ﻮرﯾﺘﻢ اراﺋﻪ ﺷﺪه در ﻗﺴﻤﺖ ﻗﺒﻞ را ﭘﯿﺎدهﺳﺎزی ﮐﻨﯿﺪ : ورودی: در ﺧﻂ اول ،ورودی ﺷﺎﻣﻞ ) (nﺗﻌﺪاد ﻃﺒﻘﺎت اﯾﻦ ﺳﺪ اﺳﺖ. در اداﻣﻪ nﺧﻂ ﻣ آﯾﺪ ﮐﻪ در ﻫﺮ ﺧﻂ ٣ﻋﺪد Pi ، Li ،Wiداده ﺧﻮاﻫﺪ ﺷﺪ. ﺧﺮوﺟ : در ﺗﻨﻬﺎ ﺳﻄﺮ ﺧﺮوﺟ ،ﺣﺪاﻗﻞ ﻫﺰﯾﻨﻪ ﺑﺮای ﺗﺨﺮﯾﺐ ﭘﺎﯾﯿﻦﺗﺮﯾﻦ ﻃﺒﻘﻪ اﯾﻦ ﺳﺪ را ﭼﺎپ ﮐﻨﯿﺪ. ﻣﺤﺪودﯾﺖﻫﺎ n ≤ ١٫ ۵ × ١٠۴ ٠ ≤ Wi , Li , Pi ≤ ١٠۶ ورودی و ﺧﺮوﺟ ﻧﻤﻮﻧﻪ: stdout stdin 3 1000 1000 1 0 1000 2 2 10 100 ۴ 3
© Copyright 2025 Paperzz