BJTU1923 憨中憨的幽蘭拿鐵

2021-10-13 07:10:41 字數 2303 閱讀 9454

3000ms 256mb

鐵憨憨騎士團團長憨中憨有著特殊的能力來激發騎士的鬥志——他會泡好喝的幽蘭拿鐵,一杯幽蘭拿鐵能激發一位騎士的鬥志。

製作一杯拿鐵需要 ?

種原材料,每種原材料各需要 ?1,?2,…,?? 份,憨中憨現有每種原材料各?1,?2,…,??份。

另外,他還有另外 ? 份萬能材料,每乙份萬能材料都能作為任意一種原材料的乙份用於製作奶茶。

現在給你原材料和神秘材料的份數,求憨中憨最多能製作幾杯幽蘭拿鐵。

第一行為兩個整數 ?,? (1≤?≤105,0≤?≤107),分別表示原材料的種類和萬能材料的份數。

第二行為 ? 個整數 ?1,?2,…,?? (1≤??≤104),?? 代表製作一杯奶茶需要第 ? 種材料的份數。

第三行為 ? 個整數 ?1,?2,…,?? (1≤??≤108),?? 代表憨中憨擁有的第 ? 種材料的份數。

乙個整數,表示憨中憨最多能製作奶茶的杯數。

5 7

1 2 1 2 3

5 5 5 5 5

3
把 1 份萬能材料當作第 2 種原材料,

把 1 份萬能材料當作第 4 種原材料,

把 4 份萬能材料當作第 5 種原材料,

共消耗萬能材料 6 份,能製作 3 杯奶茶。

可以證明,剩餘的材料不能製作更多奶茶。

這道題在題意上很好理解,基本的思路就是對奶茶數量進行變化,從而對現有的材料和萬能材料的數量多少進行判斷,直到不夠為止,然後確定最多的奶茶數量。

但是要注意到這道題的資料大小和時間限制,如果不加處理地進行迴圈判斷,很容易時間就會超過10^8,就很容易會爆。

例如如下思路,將奶茶數量從1到最大值進行逐個試探:(tle)

#include

#include

#include

#include

using

namespace std;

long

long n,m;

long

long

*a;long

long

*a2;

long

long

*b;long

long temp1 =0;

long

long ans =1;

intmain()

for(

long

long i =

0;i < n;i++

)while

(temp1 >=0)

else}if

(temp1 >=0)

} ans--

; cout

}

結果就是tle。。。也在意料之中,這個思路沒啥思考難度。

於是我們就要思考了,我們需要在哪個地方進行處理能夠減少它的執行時間呢。我選擇了在奶茶數量的判斷方面,不必從1開始遍歷,其實它會有乙個最小值的,這個最小值就是

m in

(b[i

]÷a[

i]

)min(b[i]÷a[i])

min(b[

i]÷a

[i])

雖然資料小的時候顯不出來什麼,但資料量大時會大大減小執行時間。

從而得到如下**:

#include

#include

#include

#include

using

namespace std;

int n,m;

int*a;

int*a2;

int*a3;

int*b;

int temp1 =0;

int ans =1;

intcmp

(const

void

*a,const

void

*b)int

main()

for(

int i =

0;i < n;i++

)for

(int i =

0;i < n;i++

)qsort

(a3,n,

sizeof

(a3[0]

),cmp)

; ans = a3[0]

;while

(temp1 >=0)

else}if

(temp1 >=0)

} ans--

; cout

}

192 跳躍遊戲

題目描述 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 ...

19 2 表單標籤庫

表單標籤庫中包含了可以用在jsp頁面中渲染html元素的標籤。為了使用這些標籤,必須在jsp頁面的開頭處宣告這個taglib指令 1 2 taglib prefix form uri 表19.1展示了表單標籤庫中的標籤。表19.1表單標籤庫中的標籤 標籤描述 form渲染表單元素 input渲染元素...

編譯安裝 go lang 1 9 2

最近要用 go 做開發,得先給自己的開發機安裝這個 go lang,選擇了從源 編譯安裝。1 指令碼如本 2 但執行到 make.bash 時出了如下問題,cannot find usr bin go 當然找不到啦,不是正在安裝go嘛。3 除錯,看一下 make.bash 指令碼中是哪行命令出錯了 ...