Codeforces Round #330 (Div. 1) C. Edo and Magnets(暴力+矩形覆盖点)
2015-11-21 00:06
417 查看
题目链接
题意:n个点,可以删除K个点,然后找一个平行于坐标轴的矩形,覆盖所有的点,面积最小
解答:暴力枚举删除4个边界上的点
AAA:码力不足,参考网上
题意: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; }
相关文章推荐
- SQL Server 远程连接出错~~~无法访问服务器
- Atlas 学习
- iOS9 UIWindow rootViewController
- Java异常之catch语句块
- Qt---- 点击按钮调用另一个窗口Ui
- Mycat 学习笔记
- [leetcode]Add Binary
- 并发编程学习链接
- android post HttpURLConnection乱码解决
- 黑马程序员——Java语言的基础语法总结(下)
- 阿里云系列——7.阿里云IIS系列详解(过程+通用+最新)
- JiaoZhu and WAR3
- MySQL Union ALL Union Minus 学习
- DataOdinalRegression
- 第一次Sprint
- 受 Mozilla 启发,苹果宣布更新 WebKit 反跟踪政策
- 新的Raspbian带来了性能的改进,更新了Raspberry Pi包
- webpack bable-loader升级无法编译jsx es6
- javascript实现Email邮件显示与删除功能
- JavaScript实现自动生成网页元素功能(按钮、文本等)