311 Packets

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#define N 7
using namespace std;
int n;
int a[N];
int temp[5]= {0,1,3,5,9};
int l[3];
int main()
{
//    int t;
//    scanf("%d",&t);


    freopen("ex.in","r",stdin);

    while(1)
    {
        int cnt=0,ok=0;
        for(int i=1; i<7; i++)
        {
            scanf("%d",&a[i]);
            if(a[i]&&!ok)
                ok=1;
        }
        if(!ok)
            break;


        memset(l,0,sizeof(l));

        cnt+=a[6]+a[5]+a[4];
        l[1]=a[5]*11;
        l[2]=a[4]*5;

        cnt+=a[3]/4;
        a[3]%=4;
        if(a[3])
        {
            cnt++;
            l[2]+=temp[4-a[3]];//
            l[1]+=36-temp[4-a[3]]*4-a[3]*9;//
        }
        a[2]-=l[2];
        if(a[2]<0)
        {
            l[1]+=-a[2]*4;
        }
        if(a[2]>0)
        {
            cnt+=a[2]/9;
            a[2]%=9;
            if(a[2])
            {
                cnt++;
                l[1]+=36-a[2]*4;
            }
        }
        a[1]-=l[1];
        if(a[1]>0)
        {
            cnt+=a[1]/36;
            a[1]%=36;
            if(a[1])
                cnt++;
        }

        printf("%d\n",cnt);


    }
    return 0;
}


简单的贪心,按照从大到小放的原则~ 4*4,5*5,6*6的,一个盒子只能放一个,所以有多少个4*4,5*5,6*6就最少有这么多盒子,然后看3*3的,4个3*3的能放进一个盒子,用3*3出现的次数加上3除以4得到放3*3需要多少个盒子,这时候只剩下2*2, 1*1了,2*2能放到1个4*4里面5个,能放到一个3*3里面有4种情况:0,1,3,5.最后放1*1的,哪放得下放哪,实在放不下了就再增加盒子~ 比下边的方法好!!!!!!!!








#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#define N 7
using namespace std;
int n;
int a[N];
int temp[5]= {0,1,3,5,9};
int main()
{
//    int t;
//    scanf("%d",&t);


//    freopen("ex.in","r",stdin);

    while(1)
    {
        int cnt=0,ok=0;
        for(int i=1; i<7; i++)
        {
            scanf("%d",&a[i]);
            if(a[i]&&!ok)
                ok=1;
        }
        if(!ok)
            break;


        cnt+=a[6]+a[5]+a[4];
        a[1]-=a[5]*11;
        a[2]-=a[4]*5;
        if(a[2]<0)
        {
            a[1]+=a[2]*4;
            a[2]=0;
        }
//        if(a[1]<0)
//        a[1]=0;

        cnt+=a[3]/4;
        a[3]%=4;
        if(a[3])
        {
            cnt++;
            int t=4-a[3];
            a[2]-=temp[t];//
            int num=0;
            if(a[2]<0)
            {
                num=-a[2];
                a[2]=0;
            }
            a[1]-=36-a[3]*9-temp[t]*4+num*4;
//            if(a[1]<0)
//            a[1]=0;
        }

        if(a[2]>0)
        {
            cnt+=a[2]/9;
            a[2]%=9;

            if(a[2])
            {
                cnt++;
                a[1]-=36-a[2]*4;
            }
        }


        if(a[1]>0)
        {
            cnt+=a[1]/36;
            a[1]%=36;
            if(a[1])
                cnt++;
        }
        printf("%d\n",cnt);


    }
    return 0;
}

Softnet packets(软身网络包)是一种网络传输中的数据包,用于在软件层面对网络数据进行处理和传输。Softnet packets的概念是建立在软件定义网络(Software Defined Networking,SDN)的基础上的,即将网络功能和控制从传统的硬件设备中分离出来,通过软件来实现对网络的管理和控制。 Softnet packets的处理方式相对于传统的硬件处理方式更加灵活和可编程。它可以通过编写相应的软件程序来定义和修改网络流量的路由、转发、过滤等行为,满足不同的网络需求和应用场景。与此同时,Softnet packets还可以根据网络负载和性能的优化策略,动态地分配网络资源,提高网络的吞吐量和性能。 Softnet packets的优势在于其灵活性和可扩展性。通过软件定义的方式,网络管理人员可以更加精确地配置和管理网络流量,实现对网络的精细化控制。同时,Softnet packets的虚拟化特性也使得网络资源的使用更加高效,节约了成本和能源。此外,软件定义的网络还可以与其他技术和系统相结合,例如网络功能虚拟化(Network Function Virtualization,NFV)和云计算,实现更加智能和高效的网络管理和应用部署。 总之,Softnet packets是一种通过软件定义网络来处理和传输数据的方式,具有灵活性、可编程性和可扩展性的优势。它可以实现对网络流量的精细化控制,优化网络资源的使用,提高网络性能和吞吐量,为网络管理和应用部署带来了更大的便利和效益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值