2017 百度之星 程式設計大賽 資格賽

2021-08-05 18:27:01 字數 986 閱讀 1173

度度熊為了拯救可愛的公主,於是與**大魔王戰鬥起來。

**大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。

度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。

當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p[i]-b[j],當然如果傷害小於防禦,那麼攻擊就不會奏效。

如果怪獸的生命值降為0或以下,那麼怪獸就會被消滅。

當然每個技能都可以使用無限次。

請問度度熊最少攜帶多少晶石,就可以消滅所有的怪獸。

本題包含若干組測試資料。

第一行兩個整數n,m,表示有n個怪獸,m種技能。

接下來n行,每行兩個整數,a[i],b[i],分別表示怪獸的生命值和防禦力。

再接下來m行,每行兩個整數k[i]和p[i],分別表示技能的消耗晶石數目和技能的傷害值。

資料範圍:

1<=n<=100000

1<=m<=1000

1<=a[i]<=1000

0<=b[i]<=10

0<=k[i]<=100000

0<=p[i]<=1000

對於每組測試資料,輸出最小的晶石消耗數量,如果不能擊敗所有的怪獸,輸出-1
1 2

3 57 10

6 81 2

3 510 7

8 6

6

18

利用 dp[血量][防禦] 最小鑽石量

由題可知其a 、b範圍較小,故不會超時

for(int i=0;i<=10;i++)//防禦o(10)

else}}

}ll ans = 0 ;

for(int i=0;i

2017 百度之星 程式設計大賽 資格賽

思路 比賽的時候也一直以為是計算幾何問題,所以就沒想,賽後看了看大佬們的部落格發現思路還是挺簡單的,就是對度度熊夥伴進行建圖,有邊的條件是所有所有村莊位於這天邊的一側,然後對這個圖跑乙個最小環 之前一直不理解叉積,做了幾道題之後好多了 include include include include ...

2023年百度之星程式設計大賽 資格賽

主要是卡了一下 接下來2題還在做 都有思路 考慮全然即可了 include include using namespace std int main if k 1 m v m v k m int sum 0 while m n m 0 if m 0 m n sum 1 printf d n sum ...

百度之星資格賽

1001 給你1 n這n個數字,公升序排列,接下來按照陣列a進行位置變換,a i 代表第i個數字會變到a i 位置上,a中的數字也是從1 n。現在問有多少個不同的陣列能滿足做一次變換和做三次變換結果相同。我們可以這樣分析,x y是唯一的到y的途徑,假設x y為第一次變換,因此在第三次變換的時候任然為...