1546 篝火晚會

2023-01-31 11:20:07 字數 1103 閱讀 4498

1樓:匿名使用者

第三題 篝火晚會-fire

[問題評估]

此題或許大多數人會覺得很麻煩。或許有人會選擇搜尋來做,顯然,50000的資料量不可能允許搜尋不超時。或許有人會用貪心,但是卻無從下手。

動態規劃?怎麼劃階段更是一個難題。然而,此題卻不是考察選手的演算法的,而是考察你從題目中找出基本核心的能力。

[題目實現]

題目給你的初始狀態是一個迴路,從第一個同學前斷開,不難看出這是一個嚴格的上升序列。而輸入的資料也可以將之構成一個包含所有同學的迴路,否則就達不到沒個人的願望。

我們可以用兩的陣列來儲存兩個陣列的狀態,初始狀態為st,目標狀態為en。st[i]=i,

i<=n。而輸入資料我門可以先用一個二維e陣列儲存,e[i,1]即表示第i 個人的第一個願望。我們將目標狀態陣列en的第一個元素賦值為1,然後就可以把s[1]的第一個願望加入陣列為s[2],依次我們可以逐個加入,加入沒個元素的時候,還要判斷一下每個元素是否在陣列當中,如果在,那就取第2個願望。

如果第二個願望也在陣列當中,那麼我們的目標狀態的陣列也就構造完成了。

如果每個人的願望都能實現,顯然,目標狀態的陣列的元素必定是n,而假如不是,那麼就可以輸出-1了。

此時,問題就顯的簡單些了,如何讓一個陣列從一中狀態變成另一種狀態,相信有很多方法,可還是個麻煩事。

從目標狀態轉換成初始狀態的步數是等同於初始狀態轉換成目標狀態,而此時再看看初始狀態的陣列,相信你已經看出些疑端了吧!

排序!!!

對,其實從目標狀態轉換成初始狀態的過程就是一個排序的過程,而且還是一個最簡單的氣泡排序的過程!

到了這了,問題已經明瞭了,題目所求就是每次進行連續交換的人數總和,這樣,一個看似複雜的題目就變的異常的簡單了!而題目2秒的時間限制更是保證了氣泡排序經過一些優化以及剪枝後不會超時。

但是,千萬不能用其他的排序法來解決。雖然能讓你的程式變的更快,卻同時你也得不正確的解!

2樓:匿名使用者

置換問題,設人數為n.

列舉目標序列(50000*2種)

求出原序列到目標序列的置換, 並求出這個置換的環數m, 則此時交換次數為n-m.

輸出所有n-m中最小的即可.

時間複雜度n^2

描寫觀眾看篝火晚會的心情短語,怎樣描繪篝火晚會

答 歡快的跑,大聲的唱,相互的擁,盡情的跳。怎樣描繪篝火晚會 如何運用動作和心理描寫,描寫出篝火晚會的歡樂熱鬧場面?表現高興心理的 雪雪抿著嘴,弓著腰,躡手躡腳地,一步一步慢慢地靠近它.靠近了,靠近了,又見她悄悄地將右手伸向蝴蝶,張開的兩個手指一合,夾住了粉蝶的翅膀.雪雪高興得又蹦又跳.表現憤怒的句...

新年晚會策劃方案,元旦晚會策劃案

晚會可以唱一些祝福的歌曲,然後大家都互相表達一下自己的祝福心裡話!熱鬧點的話你策劃一個砸金蛋活動,在金蛋裡面放些獎品 互動遊戲任務,誰砸到了都可以邀請大家參與進來,誰參與了就可以獲得獎勵!儘量給大家公平參與的機會!很有利於大家的友誼交流!金蛋製作 你去北京華企京晟 的 金蛋批發 可以向他們定做!他們...

年終晚會獎品準備什麼好呢,年終晚會獎品如何設定啊???

一等獎可以買一臺高檔的微波爐什麼的 二等獎買個mp4 1gb的 三等獎弄個電磁爐 呵呵 經濟實用 年終晚會獎品如何設定啊?5000買液晶電視 4000買ipad2 3000買數碼相機 2000上網本 1000買手機 800買掌上遊戲機 600買美的電飯鍋 500買格蘭仕微 回波爐400買電水壺 30...