演算法練習 二

2022-02-06 21:23:44 字數 2060 閱讀 2904

不知道為什麼網上找的關於acm的資料幾乎都是用pascal語言寫的, 而我們學校要求是必須用c/c++寫, 我也知道語言只是工具, 演算法才是核心, 但我看到滿篇的pascal我還是沒有耐心研讀. 如果大家有什麼好的關於下面暴露一下今天寫的**, 這兩道題還有比較有意思的...第一題**有什麼不好的地方, 希望得到大家的批評和指點. 有興趣做演算法的, 也可以練練.

還有, 我不知道像寫c++這種控制台程式, 在**裡加上什麼**, 可以輸出程式執行時間.

一、聰明的情侶

酋長的女兒艾麗要出嫁了,按以往的風俗習慣,要搭個高台,台下是眾多的求婚者,艾麗在台上扔束花,扔在台下誰身上,艾麗就得嫁給誰。但她擔心落不到心愛的雷蒙身上。艾麗私下約雷蒙商量如何是好。雷蒙想出了乙個主意……艾麗便和父親說:「我不願意搭台撒花,這麼多人來,擠在一起亂哄哄的,沒秩序。」父親說,「不這樣也可以,但結婚時要當場在人群中決定嫁給誰,不許指名,方法你自己定。」艾麗高興的告訴主持人如何行事。婚日來臨,人群擁擠,主持人叫求婚者排成一隊,雷蒙在隊外數了數佇列共有

101人,於是自己找了個合適的位置也站在佇列中,主持人要大家從前往後1,

2,1,

2……報數,報單數的退出場外,餘下的人位置不變,再重新從前往後1,

2,1,

2……報數,報單數的退場,如此下去最後只剩一人,艾麗便嫁給誰。大家驚奇的發現最後剩下的竟是雷蒙。請用程式回答雷蒙剛開始站在佇列中的第幾個位置。

我的思路:據題意, 算上雷蒙, 那應該是一共有102個男的來參加這個酋長女兒的"非誠勿擾"專場的, 我用了乙個102個元素的array陣列,每個元素初始值都為1,表示都還沒有被淘汰,以後淘汰了的用0表示, 用乙個bool值來標記當前陣列元素等於"1"的位置是單數還是雙數(單數即為true). 迴圈陣列裡每乙個的元素,當array[i]==1的時候,進入乙個判斷,如果判斷這個元素處在單數的位置,則把它的值改為0,這乙個迴圈結束後,統計這102個元素的和,如果和為1的話,說明陣列裡只剩下乙個人了, 然後輸出這個人的位置(就是陣列下標+1).迴圈多少次呢? 我用了乙個do...while迴圈,當102個元素的和不為1的時候,迴圈.

#include

<

iostream

>

using

namespace

std;

intmain()

don 

+=array[i];}if

(n ==

1)                    

//n等於1了,說明陣列中之剩下乙個人還沒有淘汰}}

while

(n !=

1);                

//當陣列中沒有只剩下乙個人的時候,執行迴圈

return0;

}輸出:

但我覺得這個結果是錯的...不知道是不是這樣...

二、最佳編碼

某通訊單位打算傳遞一段資訊「

xyzwyzwzywyxzy」,

為提高安全性,打算將字母

w,x,y,z

分別用不同的

0,1編碼進行表示,並希望編碼後,該段資訊的編碼總長度越短越好。請編寫程式設計編碼方案。

我的思路:我想用哈夫曼編碼啊, 可是不知道怎麼編寫成**.我想在**中實現這樣的功能: 輸入字串"xyzwyzwzywyxzy", 回車, 然後程式輸出用0,1表示的編碼. 今天在網上看了很多,圖書館也找了不少資料結構的書,書上講到哈夫曼編碼也都只是介紹,沒有詳細的過程, 看了很久還是只編了一半...

分析:x出現2次, w出現3次, z出現4次, y出現5次. 畫出哈夫曼圖...左子樹用0表示, 右子樹用1表示的話, 那麼編碼是x可以用000表示,w用001表示,z可以用01表示,y可以用1表示. 編碼出來共是28位.(跟用00表示x,01表示y,10表示z,11表示y,編碼也是28位. 這僅是巧合).這題不曉得怎麼下手,尋幫助.

繼續練習演算法...

C 演算法練習二

1.使用者輸入三個字串,用倒序輸出使用者輸入的字串 public void method console.readkey 2.使用者輸入乙個數字和乙個寬度,寬度也是乙個正整數,然後用第乙個數字列印出乙個直角等腰三角形 public void method int digit,int width co...

排序演算法練習(二)

分治演算法 求逆序對 ayyzoj p1434 問題描述 給定乙個序列a1,a2,an,如果存在iaj,那麼我們稱之為逆序對,求逆序對的數目。輸入格式 第一行為n,表示序列長度,接下來的n行,第i 1行表示序列中的第i個數。輸出格式 所有逆序對總數。輸入樣例 43 232 輸出樣例 3 資料範圍 n...

貪心演算法練習(二)

noip2002 t1 均分紙牌 ayyzoj p1030 cogs p98 分析 見此課件的例7 程式 見noip2002 提高組 貪心演算法 取數遊戲 ayyzoj p1425 分析 本題可以這樣理解,有2n個數,a從開頭取的話取第乙個,給對手留下的是第2個和第2n個,即對手只能選偶數字的數,a...