wannafly挑戰賽A 小H和迷宮

2021-08-17 05:25:32 字數 1489 閱讀 4203

題目描述

小h陷入了乙個迷宮中,迷宮裡有乙個可怕的怪獸,血量有n點,小h有三瓶魔法藥水,分別可以使怪獸損失a%、b%、c%的血量(之後怪獸的血量會向下取整),小h想合理地運用這三瓶藥水,使怪獸失去盡可能多的血量

注意:每瓶藥水只能用一次

輸入描述:

一行,四個整數 n,a,b,c

輸出描述:

一行,乙個整數w,表示最多能使得怪獸扣減多少血量

示例1

輸入

100 20 15 0

輸出

備註:

5≤n≤109,0≤a,b,c≤100

這是一道送分題,三種藥水,怎樣使用才能使怪獸損失最多的血量,三種藥水共有6種使用順序,只需要分別計算就行了

#include

#include

using namespacestd;

int main()

int n, a, b, c;

int themin = 1000000001;

cin >> n >> a >> b>> c;

a = 100 - a; b = 100 - b; c = 100 - c;

//6種情況

int tmp = n;

tmp = tmp*1.0 / 100 * a; tmp = tmp*1.0 /100 * b; tmp = tmp*1.0 / 100 * c; themin = min(themin, tmp);

tmp = n;

tmp = tmp*1.0 / 100 * a; tmp = tmp*1.0 /100 * c; tmp = tmp*1.0 / 100 * b; themin = min(themin, tmp);

tmp = n;

tmp = tmp*1.0 / 100 * b; tmp = tmp*1.0 /100 * a; tmp = tmp*1.0 / 100 * c; themin = min(themin, tmp);

tmp = n;

tmp = tmp*1.0 / 100 * b; tmp = tmp*1.0 /100 * c; tmp = tmp*1.0 / 100 * a; themin = min(themin, tmp);

tmp = n;

tmp = tmp*1.0 / 100 * c; tmp = tmp*1.0 /100 * a; tmp = tmp*1.0 / 100 * b; themin = min(themin, tmp);

tmp = n;

tmp = tmp*1.0 / 100 * c; tmp = tmp*1.0 /100 * b; tmp = tmp*1.0 / 100 * a; themin = min(themin, tmp);

cout << n - themin;

return 0;

Wannafly挑戰賽10 小H和密碼

一開始用的dfs很明顯過不去,後來看大佬的 原來是動態規劃,另外這題的資料太水了,不少 連樣例都過不去卻可以ac,我也是服了orz。分別用乙個二維陣列dial和乙個一維陣列empty來表示密碼盤,dial存的是第i個密碼盤上有哪些字母,empty表示第i個密碼盤是否有 即空字元。再設定乙個二維陣列d...

Wannafly挑戰賽10 A小h和迷宮

a小h和迷宮 小h陷入了乙個迷宮中,迷宮裡有乙個可怕的怪獸,血量有n點,小h有三瓶魔法藥水,分別可以使怪獸損失a b c 的血量 之後怪獸的血量會向下取整 小h想合理地運用這三瓶藥水,使怪獸失去盡可能多的血量 注意 每瓶藥水只能用一次 模擬即可,注意是血量向下取整,則失去的血量向上取整!includ...

Wannafly挑戰賽10 B小h和密碼

b小h和密碼 小h在擊敗怪獸後,被乙個密碼鎖擋住了去路 密碼鎖由n個轉盤組成,編號為1 n,每個轉盤有m個位置,每個位置上要麼有乙個小寫字母,要麼沒有任何字元。乙個密碼能被轉盤表示出,當且僅當指定每個轉盤上面的某乙個位置,然後將這些位置按照所屬的轉盤編號順次連線 空位置直接忽略 可以得到這個密碼 小...