首页 > 代码库 > 水果配载
水果配载
2565 水果配载
Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 1042 Solved: 336
Description
水果销售公司接了一个单子,现要从公司将货运到火车站。水果都用箱子装好了,现有三种型号的,分别重量为910、462、和235kg的。现在有不同装载量的货车,请根据装载量给不同货车设计配载方案,使装载的重量总和最大。
Input
多个测试案例,每个一行,输入货车的最大装载量m(m不超过20000),最后一行是0,不需要处理
Output
每个测试案例输出分2行第一行输出"Solution A is:",然后是三种箱子各多少个,中间用一个空格隔开第二行输出"Load A is:",然后是总载重量其中A是第几个测试案例。
Sample Input
80000
Sample Output
Solution 1 is: 7 2 3Load 1 is: 7999
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdbool.h> 4 int f[20001][3]; 5 bool v[20001]; 6 int main() 7 { 8 // freopen("a.txt","r",stdin); 9 int i,j,l,n,cas=0,w[3]={235,462,910};10 while(scanf("%d",&n)&&n!=0)11 {12 cas++;13 if(n<235)14 {15 printf("Solution %d is: 0 0 0\nLoad %d is: 0\n",cas,cas);16 continue;17 }18 memset(v,false,sizeof(v));19 memset(f,0,sizeof(f));20 v[0]=true;21 for(i=0;i<3;i++)22 for(j=w[i];j<=n;j++)23 if(v[j-w[i]]&&!v[j])24 {25 for(l=0;l<3;l++)26 {27 if(l==i)28 f[j][l]=f[j-w[i]][l]+1;29 else30 f[j][l]=f[j-w[i]][l];31 }32 v[j]=true;33 }34 for(n;n>=235;n--)35 if(v[n])36 {37 printf("Solution %d is: %d %d %d\nLoad %d is: %d\n",cas,f[n][2],f[n][1],f[n][0],cas,n);38 break;39 }40 }41 return 0;42 }
Acknowledge:小路 の Blog http://blog.163.com/lu_jian_bin2006@126/blog/static/48789281200963083132137/
水果配载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。