/*
name: 2985_數字組合
author:
date: 26-07-17 22:52
description: 2985_數字組合
檢視 提交 統計 提問
總時間限制: 1000ms 記憶體限制: 65536kb
描述有n個正整數,找出其中和為t(t也是正整數)的可能的組合方式。如:
n=5,5個數分別為1,2,3,4,5,t=5;
那麼可能的組合有5=1+4和5=2+3和5=5三種組合方式。
輸入輸入的第一行是兩個正整數n和t,用空格隔開,其中1<=n<=20,表示正整數的個數,t為要求的和(1<=t<=1000)
接下來的一行是n個正整數,用空格隔開。
輸出和為t的不同的組合方式的數目。
樣例輸入
5 51 2 3 4 5
樣例輸出
3演算法分析:這是乙個典型的0-1揹包問題,只不過不是求最優解,而是求所有可能的組合,故需要累計所有的組合。
*/#includeusing namespace std;
const int maxc = 10000; //揹包最大容量
const int maxn = 100; //物品的最大個數
int v[maxn+1];//第i個數的值相當於0-1揹包中物品的重量和價值
long long f[maxc+1] = ; //記錄給定n個物品裝入容量為j的揹包的分配方案數量
long long zeroonepack_5(int n, int c);//可以轉化為求0-1揹包的方案總數
int main()
cout << zeroonepack_5(n, c) << endl;
return 0;
}long long zeroonepack_5(int n, int c)//可以轉化為求0-1揹包的方案總數 }
return f[c];
}
/*
name: 2985_數字組合
author:
date: 26-07-17 22:52
description: 2985_數字組合
檢視 提交 統計 提問
總時間限制: 1000ms 記憶體限制: 65536kb
描述有n個正整數,找出其中和為t(t也是正整數)的可能的組合方式。如:
n=5,5個數分別為1,2,3,4,5,t=5;
那麼可能的組合有5=1+4和5=2+3和5=5三種組合方式。
輸入輸入的第一行是兩個正整數n和t,用空格隔開,其中1<=n<=20,表示正整數的個數,t為要求的和(1<=t<=1000)
接下來的一行是n個正整數,用空格隔開。
輸出和為t的不同的組合方式的數目。
樣例輸入
5 51 2 3 4 5
樣例輸出
3演算法分析:這是乙個典型的0-1揹包問題,只不過不是求最優解,而是求所有可能的組合,故需要累計所有的組合。
*/#includeusing namespace std;
const int maxc = 1000; //揹包最大容量
const int maxn = 20; //物品的最大個數
int v[maxn+1];//第i個數的值相當於0-1揹包中物品的重量和價值
long long b3[maxn+1][maxc+1] = ; //記錄給定n個物品裝入容量為j的揹包的分配方案數量
int zeroonepack_3(int n, int c);//可以轉化為求0-1揹包的方案總數
int main()
cout << zeroonepack_3(n, c) << endl;
return 0;
}int zeroonepack_3(int n, int c)//可以轉化為求0-1揹包的方案總數
} return b3[n][c];
}
/*
name: 2985_數字組合
author:
date: 26-07-17 22:52
description: 2985_數字組合
檢視 提交 統計 提問
總時間限制: 1000ms 記憶體限制: 65536kb
描述有n個正整數,找出其中和為t(t也是正整數)的可能的組合方式。如:
n=5,5個數分別為1,2,3,4,5,t=5;
那麼可能的組合有5=1+4和5=2+3和5=5三種組合方式。
輸入輸入的第一行是兩個正整數n和t,用空格隔開,其中1<=n<=20,表示正整數的個數,t為要求的和(1<=t<=1000)
接下來的一行是n個正整數,用空格隔開。
輸出和為t的不同的組合方式的數目。
樣例輸入
5 51 2 3 4 5
樣例輸出
3演算法分析:這是乙個典型的0-1揹包問題,只不過不是求最優解,而是求所有可能的組合,故需要累計所有的組合。
*/#includeusing namespace std;
const int maxc = 10000; //揹包最大容量
const int maxn = 100; //物品的最大個數
int v[maxn+1];//第i個數的值相當於0-1揹包中物品的重量和價值
long long b3[maxn+1][maxc+1] = ; //記錄給定n個物品裝入容量為j的揹包的分配方案數量
int zeroonepack_3(int n, int c);//可以轉化為求0-1揹包的方案總數
int main()
cout << zeroonepack_3(n, c) << endl;
return 0;
}int zeroonepack_3(int n, int c)//可以轉化為求0-1揹包的方案總數
2985 數字組合
2985 數字組合 總時間限制 1000ms 記憶體限制 65536kb 描述 有n個正整數,找出其中和為t t也是正整數 的可能的組合方式。如 n 5,5個數分別為1,2,3,4,5,t 5 那麼可能的組合有5 1 4和5 2 3和5 5三種組合方式。輸入 輸入的第一行是兩個正整數n和t,用空格隔...
noi 2985 數字組合
2985 數字組合 總時間限制 1000ms 記憶體限制 65536kb 描述有n個正整數,找出其中和為t t也是正整數 的可能的組合方式。如 n 5,5個數分別為1,2,3,4,5,t 5 那麼可能的組合有5 1 4和5 2 3和5 5三種組合方式。輸入輸入的第一行是兩個正整數n和t,用空格隔開,...
數字組合問題
題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。方法一 列出取值範圍內所有資料,分別檢查是否符合條件 public static void calculatenum1...