硬币找零
#include<iostream> #include<limits.h> using namespace std; int n,m; int main() { cin>>n>>m; int value[m]; int c[m+1][n+1]; for(int i=1;i<=m;i++) { cin>>value[i]; } for(int i=1;i<=m;i++) { c[i][0]=0; } for(int i=1;i<=n;i++) { c[0][i]=INT_MAX; } for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { if(j<value[i]) { c[i][j]=c[i-1][j]; continue; } if(c[i-1][j]<c[i][j-value[i]]+1) c[i][j]=c[i-1][j]; else c[i][j]=c[i][j-value[i]]+1; } } cout<<c[m][n]; }

浙公网安备 33010602011771号