UVa 10306 e Coins(二維完全揹包)

2022-09-16 00:36:08 字數 571 閱讀 8849

題目:

有n種物品,每種物品有x, y兩個價值,並且可以有無限多個。

給定s,使得(x1+x2+....)^2 + (y1+y2+....)^2 = s ^ 2。並且物品個數最少。

思路:既然是物品個數沒有限制,則就要想到完全揹包。但是此時如何揹包就要退而求解。

dp[i][j] 表示能選到x的總和為i,y的總和為j時,最少的物品選擇數。

此時還有個隱性的物品揹包屬性,那就是個數:把物品的價值當作是揹包容量,個數當作是價值。求能達到要求且價值最小的情況。

初始化狀態:dp[0][0] = 0。

#include #include 

#include

#include

#define min(a,b) (((a) < (b)) ? (a) : (b))

const

int maxn = 301

;int

dp[maxn][maxn];

int w1[50], w2[50

];int

main()

return0;

}

uva10306 e Coins 記憶化搜尋)

題目 uva10306 e coins 記憶化搜尋 題目大意 給出n個硬幣,每個硬幣有對應的x和y,ecoin的值 sqrt x x y y 問這些硬幣能否得到給定的ecoin。能的話輸出最小的組成數目。不能酒輸出not possible。解題思路 這裡的x和y並不是指定是乙個硬幣的x或y,可以是多...

UVA 10306 e Coins(二維完全揹包)

題意 e coin有兩個價值x,y,現在給你乙個價值n,給你幾種e coin,問你能否用最小的e coin數得到所求的價值n n x1 x2 xn 2 y1 y2 yn 2。思路 物品個數沒有限制,則就要想到完全揹包。但是此時如何揹包就要退而求解。dp i j 表示能選到x的總和為i,y的總和為j時...

uva 714 貪心 二分

include using namespace std const int maxm 500 int k,m,p maxm bool solve int ans else pre p i return kr k void print int ans else pre p i for int i 0 ...