1. 程式人生 > >超級無敵自己想出來的動態規劃

超級無敵自己想出來的動態規劃

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

超級無敵自己想出來的動態規劃