解题思路:
注意事项:
参考代码:
#include<stdio.h> #include<algorithm> int m,n; int cakeMWD[50],cakeNum[50]; int d[20001]; void min_mwd() { for(int i=1;i<=m;++i) { d[i]=99999; } d[0]=0; //上面是初始化,下面三个循环是重点 for(int i=0;i<n;++i) { for(int j=0;j<cakeNum[i];++j) { for(int z=m;z>=cakeMWD[i];--z) { d[z]=std::min(d[z],d[z-cakeMWD[i]]+1); } } } } int main() { scanf("%d %d",&m,&n); for(int i=0;i<n;++i) { scanf("%d %d",&cakeMWD[i],&cakeNum[i]); } min_mwd(); // for(int i=0;i<=m;++i) // { // printf("%d ",d[i]); // // } if(d[m]==99999) printf("><"); else printf("%d\n",d[m]); return 0; }
0.0分
15 人评分
C语言训练-斐波纳契数列 (C语言代码)浏览:2815 |
【密码】 (C语言代码)浏览:333 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:535 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:1055 |
本人酷爱递归实现很多问题,这里也是浏览:553 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:564 |
C语言考试练习题_保留字母 (C语言代码)浏览:700 |
IP判断 (C语言描述,蓝桥杯)浏览:1095 |
1017题解浏览:594 |
1025题解浏览:734 |