清華大學軟體2014機試

來源:互聯網
上載者:User

標籤:清華軟體   機試   

清華大學軟體2014機試

By 鐘桓

 9月 24 2014 更新日期:9月 24 2014

今天剛剛機試完,乘者還沒忘記,把自己知道的記下來,也算是澤被後來人吧~~~

這次的機試題,相對來說,會更簡單一點,總共3題,時間是3小時。

1 超級幸運數

題目大致描述:

一個數字,若是只含有1和4,這個數字就是幸運數,例如,14,114。但是514這樣的就不是了,因為含有其它數字。 若這個幸運數字中,1和4的數量相同,那麼就是超級幸運數,例如14,1144,41等等。

題目要求,輸入一個n,n的範圍是[1,1e9],輸出[1,n]的最大超級幸運數。無解的話,輸出-1.

解題思路:

這個題目,當n<14,那麼顯然是無解的,其餘情況,最起碼還有14,其實就是當>=14的時候,找一個最大的就好了,那麼最大有什麼規律,假設輸入的n有x位,當位元是奇數的時候,輸出(x-1)/2個4,和(x-1)/2個1,就好了。如果位元是偶數的話,那麼,要考慮一下一些情況了,因為輸出是不能大於n的,並且4和1的個數相等。還有,注意這樣的資料1000,它的輸出應該是41。

一些測試資料:

in: 20 out:14

in: 10 out: -1

in:1000 out: 41

2 移動小球

有一些小球,1,2,。。。,n;
有兩種操作,分別是

  • 1 x y ,把x移動至y的左邊
  • 2 x y ,把x移動至y的右邊

問得是,m次操作後,小球的順序是什麼..

其實就是這樣的,原本1,2,3,4,5.(如果n=5的話)。經過1 1 4操作後,變成2 3 1 4 5

n資料範圍[1,1000]

m 資料範圍[1,200000]

解題思路:

雙向鏈表就能夠解決這個問題。再用一個數組儲存這些個節點的位置。

測試資料:

in :

5, 2 (輸入是 n m)

1 1 4 (表示操作,1,x, y)

2 4 2

out: 2 4 3 1 5;

3 整理書架

書店管理員要把書架上的書整理一下,其實就是一排書,讓書的排序是按照書的高低,每本書有一個重量,重量越大,移動書時越費力,越累,讓我們求的是,總的移動書本的最小重量是多少。

給出的資料是:

5(書的數量)

1 2 5 3 3 (表示書的高度)

1 1 3 1 1 (標示書的重量)

輸出是2,

為什麼是2,因為這裡只需要把第4,第5本書移動到第三本書的前面,就能夠保認證的有序,移動的重量和是2。

解題思路:

移動的重量和最小,其實就是求,不移動重量和的最大是多少。那麼怎麼求不移動的最大重量和呢?其實就是記錄下每本書的位置,高度,重量,然後按照高度排序,排序完後,按照節點的位置,來求一個最大子序列,不過這個最大子序列,大不在長度上,而是重量和上,這樣求出來的最大子序列重量和,就是不移動的最大重量和,總的重量減去它,就是我們要的答案

清華大學軟體2014機試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.