zoukankan      html  css  js  c++  java
  • Two Seals codeforces 837c

    Two Seals

    一个矩形a*b,若干子矩形,子矩形中选2个,不重叠能覆盖最大

    思路:

      枚举;

    代码:

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define maxn 105
    int n,xi,yi,ai[maxn],bi[maxn],ans;
    inline void in(int &now)
    {
        char Cget=getchar();now=0;
        while(Cget>'9'||Cget<'0') Cget=getchar();
        while(Cget>='0'&&Cget<='9')
        {
            now=now*10+Cget-'0';
            Cget=getchar();
        }
    }
    int main()
    {
        in(n),in(xi),in(yi);
        for(int i=1;i<=n;i++) in(ai[i]),in(bi[i]);
        for(int i=1;i<=n;i++)
        {
            int a=xi-ai[i],b=yi-bi[i];
            if(a>=0&&b>=0) for(int v=i+1;v<=n;v++)
            {
                if(ai[v]<=a&&bi[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
                if(ai[v]<=b&&bi[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
                if(bi[v]<=a&&ai[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
                if(bi[v]<=b&&ai[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
            }
            a=xi-bi[i],b=yi-ai[i];
            if(a>=0&&b>=0)for(int v=i+1;v<=n;v++)
            {
                if(ai[v]<=a&&bi[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
                if(ai[v]<=b&&bi[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
                if(bi[v]<=a&&ai[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
                if(bi[v]<=b&&ai[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
            }
        }
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    JMeter学习(二十三)关联
    最常用的DOS命令
    不同类型的操作系统
    分级存储管理的四大优点
    软件工程中数据库设计
    PPP(点对点协议(Point to Point Protocol)
    关键路径法
    什么是鲁棒性测试
    何为蠕虫病毒
    临界区
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/7324212.html
Copyright © 2011-2022 走看看