又是贪心,有点思路,但比较乱,还不知道怎么写,看了题解,感觉自己基本是个废人了
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n,a,b,c,d,e,f,g,x,y;
int u[
4]={
0,
5,
3,
1};
//3*3的物品%4后余项为0,1,2,3的数组,就是还能放几个2*2
int main()
{
while(~scanf(
"%d%d%d%d%d%d",&a,&b,&c,&d,&e,&
f))
{
if(!a&&!b&&!c&&!d&&!e&&!f&&!g)
break;
n=f+e+d+(c+
3)/
4;
//(c+3)/4,很厉害的技巧,这是精髓
y=d*
5+u[c%
4];
//能插空的2*2东西个数
if(b>y) n+=((b-y)+
8)/
9;
//多了再加箱子
x=n*
36-f*
36-e*
25-d*
16-c*
9-b*
4;
//能插空的1*1的物品个数
if(x<a) n+=(a-x+
35)/
36;
//不够再加
printf(
"%d\n",n);
}
return 0;
}
转载于:https://www.cnblogs.com/Wangwanxiang/p/6655233.html
相关资源:各显卡算力对照表!