超級無敵自己想出來的動態規劃
阿新 • • 發佈:2017-12-14
b+ its for blog ret names space 無敵 fin
題目大意:有一組紙幣能構成哪幾種面值。
#include<bits/stdc++.h> using namespace std; #define ll long long int main() { int T; cin >> T; int m; cin >> m; int b[m+1]; for(int i=1;i <= m;i++) //輸入現在能夠加的值 cin >> b[i]; sort(b+1,b+m); //必須要從小到大的順序取while(T--) { int n; cin >> n; int dp[10000] = {0}; for(int i=1;i < 7;i ++) { dp[b[i]] = 1; //這裏是個小坑; for(int j=b[i];j <= n;j++) { if(dp[j-b[i]] != 0) dp[j] = dp[j-b[i]]+1; } } cout << dp[n] <<endl; } return 0; }
用貪心思想的話,如果不是1就不能搞了。我苦思一天,搞出來這個偽暴力算法!超強無敵!6666666666666
超級無敵自己想出來的動態規劃