2018 快手筆試題latex愛好者

2021-09-19 07:51:42 字數 1426 閱讀 7607

latex自然是廣大研究人員最喜歡使用的科研**排版工具之一。

月神想在iphone 上查閱寫好的*****,但是無賴iphone 上沒有月神喜歡使用的閱讀軟體,於是月神也希望像tex老爺爺donald knuth那樣自己動手do it yourself乙個。

在diy這個閱讀軟體的過程中,月神碰到乙個問題,已知iphone螢幕的高為h,寬為w,若字型大小為s(假設為方形),則一行可放w / s(取整數部分)個文字,一屏最多可放h / s (取整數部分)行文字。

已知一篇*****有n個段落,每個段落的文字數目由a1, a2, a3,...., an表示,月神希望排版的頁數不多於p頁(一屏顯示一頁),那麼月神最多可使用多大的字型呢?

1 <= w, h, ai <= 1000

1 <= p <= 1000000

輸入描述:

每個測試用例的輸入包含兩行。

第一行輸入n,p,h,w

第二行輸入n個數a1,a2,a3,...,an表示每個段落的文字個數。輸出描述:

對於每個測試用例,輸出最大允許的字元大小s
示例1

1 10 4 3

102 10 4 3

10 10

3

2

備註:

以上所有輸入、輸出均為整數。

且所有測試用例均保證有解。

兩個段落之前不空行,並且段落頂格寫。

這道題目一看就是典型的二分演算法。

這題理解題意有一定難度,這裡不用考慮段落前什麼的。段落後的空行對應乙個向上取整。這裡計算的時候先計算所需要的行數,最後再計算所需要的頁數。

這裡要特別注意向上取整和向下取整的問題,可以使用ceil函式

同時,二分寫的時候,最後可以比較left,和right,看看輸出left還是輸出right

#include #include using namespace std;

const int n = 10000;

int arr[n];

int n, p, h, w;

bool check(int mid)

page = ceil(1.0*line / floor(1.0*(h / mid))); // 總行數除以每一頁的行數向上取整

//cout << line << endl;

//printf("%d\n", page);

return page <= p;

}int main()

int left = 0, right = min(w,h);

while (left <= right)

else

} printf("%d\n", right);

}}

9 10快手筆試

由於太過興奮,晚上月神做了乙個奇怪的夢,月神夢見自己掉進了乙個被施法的深淵,月神想要爬出此深淵。已知深淵由n級台階構成 1 n 1000 並且每次月神僅可往上爬2的整數次冪個台階 1,2,4,由你程式設計告訴月神,月神有多少種方法爬出深淵 輸入描述 輸入m行,1第一行輸入乙個數表述有多少組測試用例 ...

2018 9 快手筆試程式設計題

題目描述 給你二叉樹的先序和中序遍歷的值,求出中序遍歷的求和樹。每個節點的和等於其左右孩子節點的value的和。思路 先建樹,直接遞迴求和輸出就好了。我簡化了輸入,原題的輸入是字串輸入,當時一直段錯誤,卡了快乙個小時,這個 能過樣例,不知道能不能過全部的資料。include include incl...

2023年快手筆試 今年第幾天(python版)

方法一 1 思路 使用python自帶的模組datetime進行計算 2 coding utf 8 import datetime dtime list map int,input split doy datetime.datetime dtime 0 dtime 1 dtime 2 print t...