Codeforces Round #330 (Div. 1) C. Edo and Magnets(暴力+矩形覆盖点)

原创 2015年11月21日 00:06:54

题目链接
题意:n个点,可以删除K个点,然后找一个平行于坐标轴的矩形,覆盖所有的点,面积最小
解答:暴力枚举删除4个边界上的点
AAA:码力不足,参考网上



#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pb push_back-
#define X first
#define Y second
#define cl(a,b) memset(a,b,sizeof(a))
typedef pair<int,int> P;
const int maxn=300005;
const LL inf=1<<27;
const LL mod=1e9+7;

struct point{
    LL x,y;
}p[maxn];
int x1[maxn],x2[maxn],Y1[maxn],y2[maxn];
///排序
bool cmp1(int a,int b){
    return p[a].x<p[b].x;
}
bool cmp2(int a,int b){
    return p[a].x>p[b].x;
}
bool cmp3(int a,int b){
    return p[a].y<p[b].y;
}
bool cmp4(int a,int b){
    return p[a].y>p[b].y;
}
int used[maxn];
int main(){
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++){
        LL X1,X2,y1,Y2;
        scanf("%lld%lld%lld%lld",&X1,&y1,&X2,&Y2);
        p[i].x=X1+X2;//放大2倍
        p[i].y=y1+Y2;
        x1[i]=x2[i]=Y1[i]=y2[i]=i;
    }

    sort(x1+1,x1+1+n,cmp1);
    sort(x2+1,x2+1+n,cmp2);
    sort(Y1+1,Y1+1+n,cmp3);
    sort(y2+1,y2+1+n,cmp4);

    LL ans=1LL<<62;
    int flag=0;
    for(int a=0;a<=k;a++){
        for(int b=0;b<=k;b++){
            for(int c=0;c<=k;c++){
                for(int d=0;d<=k;d++){///暴力枚举
                    flag++;
                    int cnt=0;
                    for(int i=1;i<=a;i++)if(used[x1[i]]!=flag){used[x1[i]]=flag;cnt++;}
                    for(int i=1;i<=b;i++)if(used[x2[i]]!=flag){used[x2[i]]=flag;cnt++;}
                    for(int i=1;i<=c;i++)if(used[Y1[i]]!=flag){used[Y1[i]]=flag;cnt++;}
                    for(int i=1;i<=d;i++)if(used[y2[i]]!=flag){used[y2[i]]=flag;cnt++;}
                    if(cnt!=k)continue;///每次删除k个点
                    LL maxx=-1LL<<62,minx=1LL<<62,maxy=-1LL<<62,miny=1LL<<62;
                    for(int i=1;i<=n;i++)if(used[i]!=flag){
                        maxx=max(p[i].x,maxx);
                        minx=min(p[i].x,minx);
                        maxy=max(p[i].y,maxy);
                        miny=min(p[i].y,miny);
                    }
                    LL x=maxx-minx,y=maxy-miny;
                    if(x%2==1)x++;
                    if(y%2==1)y++;
                    x=max(2LL,x);
                    y=max(2LL,y);
                    ans=min(ans,x*y);
                }
            }
        }
    }
    printf("%lld\n",ans/4);
    return 0;
}
版权声明:一个菜逼的笔记,并没有什么题解。。。

相关文章推荐

【Codeforces Round 272 (Div 2)C】【暴力】Dreamoon and Sums 所有除b结果是模b结果[1,a]倍数字之和

C. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes...

Codeforces Round #330 (Div. 1) A. Warrior and Archer

题意:有两个人玩游戏,游戏地图是一维的 第一个人玩的战士,所以距离越近越厉害 第二个人玩的弓箭手,所以距离越远越厉害 然后给一个数组,代表所有能选的地址的坐标 然后轮流删除坐标,直到只剩两个坐...

Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet(暴暴暴力)

C. Alyona and Spreadsheettime limit per test:1 secondmemory limit per test:256 megabytesinput:standa...

Codeforces Round #401 (Div. 2) C. Alyona and Spreadsheet(暴力)

C. Alyona and Spreadsheet time limit per test1 second memory limit per test256 megabytes inputsta...

【Codeforces Round 262 (Div 2)B】【暴力枚举】Little Dima and Equation b乘数位之和的a次方+c=数字

Little Dima and Equation time limit per test 1 second memory limit per test 256 megabyte...

Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】

题目: 题意

Codeforces Round #379 (Div. 2) C. Anton and Making Potions(暴力+二分)

题目链接:http://codeforces.com/contest/734/problem/C【中文题意】让制作n个魔法瓶,普通制作一个魔法瓶花费x秒时间,现在有s魔法值。现在有两种方案可以选择,而...

【Codeforces Round 269 (Div 2)C】【暴力】MUH and Sticks 纸牌搭楼n张牌恰好搭楼数

C. MUH and House of Cards time limit per test 1 second memory limit per test 256 megabyt...

Codeforces Round #226 (Div. 2) C. Bear and Prime Numbers(暴力)

题目链接:点击打开链接 题意:给n个数, m次询问, 每次询问时一个区间[l, r]。 求这个区间中的所有素数,能被n个数中的几个数整除的累加和。 思路:没想到什么好办法, 直接筛出素数以后直接暴...

【Codeforces Round 330 (Div 2)B】【数值统计 端点思维】Pasha and Phone 电话号码 每块数是x倍数却不能以y开头方案数

B. Pasha and Phone time limit per test 1 second memory limit per test 256 megabytes ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Codeforces Round #330 (Div. 1) C. Edo and Magnets(暴力+矩形覆盖点)
举报原因:
原因补充:

(最多只允许输入30个字)