56 购物清单优化

56 购物清单优化_第1张图片

使用动态规划算法,具体思想和找零问题一致。(就是找零问题的变形)

#include 
#include 
using namespace std;
int main(int argc, char** argv) {
	int n=0;
	cin>>n;
    int m[100];
    for(int i=1; i<=100; i++)
    {
    	m[i-1] = i*i;
	}
	vector dp(n+1, n+1);
	dp[0]=0;
	for(int i=1; i<=n; i++) {
		for(int j=0; i>=m[j]; j++) {           
			dp[i]=dp[i] < dp[ i-m[j] ]+1 ? dp[i] : dp[ i-m[j] ]+1;	    	
		}
	}
	cout<

你可能感兴趣的:(算法oj,算法,c++)