USACO Packing Rectangles

/*
LANG: C++
TASK: packrec
*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

#define N 25
#define M 8005

int pl[50][5],num,rec[5][3],Min,Count;
struct rect1
{
    int p,q;
}ans[M];

void init()
{
    num=0;
    for (int i=1;i<=4;i++)
    for (int j=1;j<=4;j++)
    if (i!=j)
    for (int k=1;k<=4;k++)
    if (k!=i && k!=j)
    {
        int t=10-i-j-k;

        num++;
        pl[num][1]=i;
        pl[num][2]=j;
        pl[num][3]=k;
        pl[num][4]=t;
    }

    for (int i=1;i<=4;i++) scanf("%d%d",&rec[i][1],&rec[i][2]);
}

int Max(int a,int b,int c,int d)
{
    int ans=a;
    if (b>ans) ans=b;
    if (c>ans) ans=c;
    if (d>ans) ans=d;
    return ans;
}

void check(int a,int b)
{
    if (a>b)
    {
        int c=a;
        a=b;
        b=c;
    }

    if (a*b=c1))
            leng-=min(leng-a1-b1,leng-c1-d1);
            check(wide,leng);

//            wide=max(a2,b2)+max(c2,d2);
//            leng=max(a1+b1,c1+d1);
//            check(wide,leng);
        }
    }

    sort(ans+1,ans+Count+1,cmp);
    ans[0].p=-2;
    printf("%d\n",Min);
    for (int i=1;i<=Count;i++)
    if (ans[i].p!=ans[i-1].p) printf("%d %d\n",ans[i].p,ans[i].q);

    return 0;
}

http://www.nocow.cn/index.php/Translate:USACO/packrec


最后一种情况不太好写,我是把上面两个先并一起,下面两个再并一起,然后看看这两个大的之间能不能压缩。



你可能感兴趣的:(USACO Packing Rectangles)