解题思路:
注意事项:
参考代码:
#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语言程序设计教程(第三版)课后习题8.4 (Java代码)浏览:788 |
弟弟的作业 (C++代码)浏览:1342 |
printf基础练习2 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:552 |
三角形 (C++代码)递推浏览:825 |
1013题解浏览:596 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:417 |
简单的a+b (C语言代码)浏览:497 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:395 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:538 |