首页 > 代码库 > poj 2709 Painter (贪心)
poj 2709 Painter (贪心)
//需要n中普通原料和g ml灰色原料 //每三种不同普通原料各x ml 可以合成 x ml 灰色原料 //问最少需要集组原料 每组各原料50 ml # include <stdio.h> # include <algorithm> # include <string.h> using namespace std; int main() { int i,n,cot,g,a[15],g1,b[15]; while(~scanf("%d",&n),n) { for(i=0;i<n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } scanf("%d",&g); sort(a,a+n); sort(b,b+n); if(a[n-1]%50==0)//满足普通原料的最少组数 cot=a[n-1]/50; else cot=a[n-1]/50+1; for(i=0;i<n;i++)//剩下去合成灰色原料的数量 { a[i]=cot*50-a[i]; b[i]=a[i]; } while(1) { g1=g; for(i=n-1;;) { sort(b,b+n); if(b[i]>0&&b[i-1]>0&&b[i-2]>0) { g1--; b[i]--; b[i-1]--; b[i-2]--; } else break; if(g1<=0) { break; } } if(g1<=0) { printf("%d\n",cot); break; } cot++; for(i=0;i<n;i++)//不够加一组 { a[i]+=50; b[i]=a[i]; } } } return 0; }
poj 2709 Painter (贪心)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。