l國即將與i國發動戰爭!!
俗話說的好:「知己知彼,百戰不殆」。l國的指揮官想派出間諜前往i國,於是,選人工作就落到了你身上。
你現在有n個人選,每個人都有這樣一些資料:a(能得到多少資料)、b(偽裝能力有多差)、c(要多少工資)。已知敵人的探查間諜能力為m(即去的所有人b的和要小於等於m)和手頭有x元錢,請問能拿到多少資料?
輸入格式:
n m x
a1 b1 c1
a2 b2 c2
an bn cn
輸出格式:
能得到的資料總數
輸入樣例#1:複製
3 10 12
10 1 11
1 9 1
7 10 12
輸出樣例#1:複製
11
二維動態規劃(dfs應該也可以)
遞推公式:
for(int i = 1; i <= n; i++)
for(int b = m; b >= b[i]; b--)
for(int c = x; c >= c[i]; c--)
dp[b][c] = max(dp[b][c], dp[b-b[i]][c-c[i]]+a[i]);
動態規劃**:
#include using namespace std;
int main(), b[n+2] = , c[n+2] = ;
//所有人偽裝能力之和為m+2,資金為x+2所能得到的資料的最大值
int dp[m+2][x+2] = ;
for(int i = 1; i <= n; i++)
cout << dp[m][x] << endl;
return 0;
}
dfs演算法:
#include using namespace std;
struct spy
;int n, m, x,res = 0;
spy spy[102];
void dfs(int numb, int pretend, int salary, int data)
int main()
洛谷P1910 L國的戰鬥之間諜
l國即將與i國發動戰爭!俗話說的好 知己知彼,百戰不殆 l國的指揮官想派出間諜前往i國,於是,選人工作就落到了你身上。你現在有n個人選,每個人都有這樣一些資料 a 能得到多少資料 b 偽裝能力有多差 c 要多少工資 已知敵人的探查間諜能力為m 即去的所有人b的和要小於等於m 和手頭有x元錢,請問能拿...
洛谷 P1910 L國的戰鬥之間諜
l國即將與i國發動戰爭!俗話說的好 知己知彼,百戰不殆 l國的指揮官想派出間諜前往i國,於是,選人工作就落到了你身上。你現在有n個人選,每個人都有這樣一些資料 a 能得到多少資料 b 偽裝能力有多差 c 要多少工資 已知敵人的探查間諜能力為m 即去的所有人b的和要小於等於m 和手頭有x元錢,請問能拿...
洛谷 P1910 L國的戰鬥之間諜
l國即將與i國發動戰爭!俗話說的好 知己知彼,百戰不殆 l國的指揮官想派出間諜前往i國,於是,選人工作就落到了你身上。你現在有n個人選,每個人都有這樣一些資料 a 能得到多少資料 b 偽裝能力有多差 c 要多少工資 已知敵人的探查間諜能力為m 即去的所有人b的和要小於等於m 和手頭有x元錢,請問能拿...