题目链接:http://poj.org/problem?id=1017
题意:装箱问题;
思路:这道题比较简单,思路也是很明确的,就是要注意“取上界”的问题;
ac代码:
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int main(void){ int a,b,c,d,e,f; int n=0,m=0; while(1){ scanf("%d %d %d %d %d %d",&a, &b, &c, &d, &e, &f); if(a==0 && b==0 && c==0 && d==0 && e==0 && f==0) break; // 只有 1*1 和 2*2 能做填充物 n=f+e+d+(int)(c+3)/4; m=5*d; if(c%4==3) m++; if(c%4==2) m+=3; if(c%4==1) m+=5; if(m<b) n+=((b-m)+8)/9; int s=36*n- 36*f - 25*e - 16*d - 9*c - 4*b; if(s<a) n+=(a-s+35)/36; cout<<n<<endl; } return 0; }