題目:
現有n個砝碼,重量分別為a1,a2,a3,……,an,在去掉m個砝碼後,問最多能稱量出多少不同的重量(不包括0)。
輸入格式:
輸入檔案weight.in的第1行為有兩個整數n和m,用空格分隔
第2行有n個正整數a1,a2,a3,……,an,表示每個砝碼的重量。
輸出格式:
輸出檔案weight.out僅包括1個整數,為最多能稱量出的重量。
輸入樣例#1:
3 11 2 2
輸出樣例#1:
3
【樣例說明】
在去掉乙個重量為2的砝碼後,能稱量出1,2,3共3種重量。
【資料規模】
對於20%的資料,m=0;
對於50%的資料,m≤1;
對於50%的資料,n≤10;
對於100%的資料,n≤20,m≤4,m<n,ai≤100。
#include #includeusing
namespace
std;
int n, m, max = 0, answer = 0
;int weight[21
];int f[20001
];bool judge[21
];int
find()//判斷每一種重量是否存在,因為所產生的所有的值只可能是1~maxx之間的數}}
for (int i = 1; i <= max; i++)
}answer =max(answer, total);
}void search(int counts, int
pos)
else
judge[pos] = true
; search(counts + 1, pos + 1
);//某乙個數字在組合的過程中只有兩種可能,一種是選,一種是不選,所以會出現兩種情況,故搜兩次
judge[pos] = false
; search(counts, pos + 1
); }
}int
main()
if (m == 0
)
search(
1, 1
); cout
<< answer <}
洛谷 1441 砝碼稱重
題目描述 現有n個砝碼,重量分別為a1,a2,a3,an,在去掉m個砝碼後,問最多能稱量出多少不同的重量 不包括0 請注意,砝碼只能放在其中一邊。輸入格式 輸入檔案weight.in的第1行為有兩個整數n和m,用空格分隔 第2行有n個正整數a1,a2,a3,an,表示每個砝碼的重量。輸出格式 輸出檔...
洛谷P1441 砝碼稱重
現有n個砝碼,重量分別為 aia iai 在去掉 mmm 個砝碼後,問最多能稱量出多少不同的重量 不包括 000 請注意,砝碼只能放在其中一邊。第 111 行為有兩個整數 nnn 和 mmm,用空格分隔。第 222 行有 nnn 個正整數 a1,a2,a3,ana 1,a 2,a 3,ldots a...
洛谷 P1441 砝碼稱重(深搜 DP)
傳送門 題目描述 現有n個砝碼,重量分別為a1,a2,a3,an,在去掉m個砝碼後,問最多能稱量出多少不同的重量 不包括0 輸入輸出格式 輸入格式 輸入檔案weight.in的第1行為有兩個整數n和m,用空格分隔 第2行有n個正整數a1,a2,a3,an,表示每個砝碼的重量。輸出格式 輸出檔案wei...