2016-05-31 22:01:16
題目大意:
給定n個砝碼,求稱出m的重量所需砝碼最小個數
解法:貪心
使砝碼數量最小,當然是每個砝碼越大越好
首先排序,從大砝碼開始試,遇到的第乙個解一定最優
需要注意的地方:
1.這道題的資料還是很給力的,裸貪心過不了,要加乙個字首和判斷可達性進行優化
1//砝碼稱重2 (codevs no.2144)2//
貪心3 #include4 #include5
using
namespace
std;
6const
int maxn=35;7
long
long
n,m;
8int
ans;
9int
tmp;
10long
long
a[maxn];
11long
long
sum[maxn];
12bool dfs(int x,long
long val,int
step)
1319
for(int i=x;i>=1;i--)
2027}28
return0;
29}30int
main()
3137 sort(a+1,a+n+1
);38
for(int i=1;i<=n;i++)
3942 dfs(n,m,0
);43 printf("%d"
,ans);
44 }
2144 砝碼稱重 2
時間限制 1 s 空間限制 16000 kb 題目等級 鑽石 diamond 題解 description 有n個砝碼,現在要稱乙個質量為m的物體,請問最少需要挑出幾個砝碼來稱?注意乙個砝碼最多只能挑一次 輸入描述 input description 第一行兩個整數n和m,接下來n行每行乙個整數表示...
Codevs 2144 砝碼稱重 2
時間限制 1 s 空間限制 16000 kb 題目等級 鑽石 diamond 題解有n個砝碼,現在要稱乙個質量為m的物體,請問最少需要挑出幾個砝碼來稱?注意乙個砝碼最多只能挑一次 輸入描述 input description 第一行兩個整數n和m,接下來n行每行乙個整數表示每個砝碼的重量。輸出描述 ...
稱砝碼問題
有一組砝碼,重量互不相等,分別為m1 m2 m3 mn 它們可取的最大數量分別為x1 x2 x3 xn 現要用這些砝碼去稱物體的重量 問能稱出多少種不同的重量。input 測試資料第一行乙個整數n n 10 表示有多種不同的砝碼 第二行n 個整數 中間用空格分隔 m1 m2 m3 mn 分別表示 n...