10101 正面交鋒

2021-08-28 15:21:01 字數 1206 閱讀 3024

問題描述

在上次偷襲了b軍大本營之後,b軍非常憤怒,正式向a軍宣戰。

a軍又獲取了一些情報。

b軍有n個士兵,每個士兵有a[i]的生命值,以及b[i]的防禦力。

a軍一共有m個士兵,第i個士兵,需要消耗k[i]的體力,造成p[i]點傷害。

當然,如果a軍派出第i個士兵打在b軍第j個士兵的話,會使得b軍第j個士兵的生命值減少p[i]-b[j],當然如果傷害小於防禦,那麼攻擊就不會奏效。

如果某個b軍士兵的生命值降為0或以下,那麼這個b軍士兵就會被消滅。

假設每個a軍士兵都開了掛,可以無限次上陣殺敵,而且從不會受傷。

請問a軍最少消耗多少體力,就可以消滅所有的b軍士兵。

輸入格式

資料的第一行有兩個整數n,m,表示b軍有n個士兵,a軍有m個士兵。

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

再接下來m行,每行兩個整數k[i]和p[i],分別表示a軍每個士兵的體力消耗和技能的傷害值。

資料範圍:

1<=n<=100000

1<=m<=1000

1<=a[i]<=1000

0<=b[i]<=10

0<=k[i]<=100000

0<=p[i]<=1000

輸出格式

對於給出的資料,輸出最小的體力消耗值,如果不能消滅所有的b軍士兵,輸出-1。

樣例輸入

1 23 5

10 7

8 6樣例輸出

18原題軍

哈哈哈,這是動態規劃的經典揹包題啊!!!!!!!!!!!!

誰是容量誰是價值什麼的,自己想,很簡單,雖然我敲了半小時。

#include #define inf 1e9

using namespace std;

int k[1005],p[1005];

int a[100005], b[100005];

int dp[15][1005];

int main()

} }long long re=0;

bool flag=1;

for(int i=0;ire+=dp[b[i]][a[i]];

} if(flag) printf("%lld\n",re);

else printf("-1\n");

return 0;

}

10101 正面交鋒

問題描述 在上次偷襲了b軍大本營之後,b軍非常憤怒,正式向a軍宣戰。a軍又獲取了一些情報。b軍有n個士兵,每個士兵有a i 的生命值,以及b i 的防禦力。a軍一共有m個士兵,第i個士兵,需要消耗k i 的體力,造成p i 點傷害。當然,如果a軍派出第i個士兵打在b軍第j個士兵的話,會使得b軍第j個...

企業微信上線了,跟阿里的釘釘展開正面交鋒

目前這個戰場的主要玩家還有釘釘和紛享銷客。紛享銷客成立五年,產品已完成 從企業內部的交流平台到銷售管理工具,再到今天的移動辦公平台 的兩次轉型 5輪融資,平台的企業註冊使用者達到30多萬,是去年同期的6倍,企業續費率超過70 全職員工超過2000人,渠道公司員工超過4000人。2 休息一下的功能很人...

正面管教php 我就這樣走進正面管教

我和 正面管教 還有一段淵源,2015年學校曾發給每個老師一本簡 尼爾森博士寫的 正面管教 我記得是王校長推薦的。那時,我們還組織了一次教師的學習會。因自己也是囫圇吞棗般讀完,印象最深的只有 和善與堅定 這五個字。後來和正面管教講師楊華京老師有了連線,就在今年5月邀請到楊老師團隊來學校給家長做正面管...