u204 高階砝碼稱重

2022-05-22 05:00:09 字數 1002 閱讀 6038

time limit: 1 second

memory limit: 128 mb

現有n個砝碼,重量分別為a1,a2,a3,……,an,在去掉m個砝碼後,問最多能稱量出多少不同的重量(不包括0)。 

輸入檔案weight.in的第1行為有兩個整數n和m,用空格分隔 第2行有n個正整數a1,a2,a3,……,an,表示每個砝碼的重量。

輸出檔案weight.out僅包括1個整數,為最多能稱量出的重量。

對於20%的資料,m=0; 對於50%的資料,m≤1; 對於50%的資料,n≤10; 對於100%的資料,n≤20,m≤4,m<n,ai≤100。

3 1

1 2 2

3
在去掉乙個重量為2的砝碼後,能稱量出1,2,3共3種重量。
【題解】

這是乙個0/1揹包+搜尋的問題。

先選出m個物品,把他們"去掉「,然後對剩餘的物品,進行0/1揹包就可以了。

ai<=100,n<=20,則列舉的最大重量為2000;

用乙個boolean型的bo陣列來表示某乙個重量是否能達到。

if (can[j-w[i]])

can[j] = true;

最後統計一下重量的種數就可以了。

【**】

#include #include int n,m,w[21],ma = 0;

bool bo[21],can[2001]; //bo用來表示哪些砝碼可以用,can則表示哪些重量可以由砝碼稱出

void input_data()

void select(int x,int num) //表示當前列舉到了第x個砝碼,去掉的砝碼數量為num

for (int i = x+1;i <= n;i++) //從x+1開始表示是乙個組合問題,從n個中選出m個。

if (bo[i])

}void get_ans()

void output_ans()

int main()

如何保護 U 盤?USB防毒高階篇 全

建立autorun.inf資料夾 在 autorun.inf 資料夾內建立con資料夾 使用者防止被病毒強行刪除並替換 autorun.inf 資料夾 設定檢測條件 第一種 不隱藏 autorun.inf 資料夾 如果突然發現 autorun.inf 資料夾消失或出現其它異常即代表 u 盤可能已經遭...