链接:http://codeforces.com/gym/101116

题意:给出n个点,要求一个矩形框将(n/2)+1个点框住,要面积最小

解法:先根据x轴选出i->j之间的点,中间的点(包括两边)按照y排序,固定一边X=(xj-xi),Y就枚举点两端的Y坐标,细节是注意要取(n/2)+1个点

事实上这样取里面一定符合要求

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
struct P
{
int x,y;
}H[10000],X[10000];
bool cmd1(P a,P b)
{
if(a.x==b.x)
{
return a.y<b.y;
}
else
{
return a.x<b.x;
}
}
bool cmd2(P a,P b)
{
if(a.y==b.y)
{
return a.x<b.x;
}
else
{
return a.y<b.y;
}
}
int main()
{
int t,n;
cin>>t;
while(t--)
{
int ans=(1<<31)-1;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>H[i].x>>H[i].y;
}
if(n==1)
{
cout<<"0"<<endl;
continue;
}
int num=n/2+1;
sort(H+1,H+n+1,cmd1);
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
int cot=0;
//枚举ij之间的点,按x坐标
for(int k=1;k<=n;k++)
{
if(H[k].x>=H[i].x&&H[k].x<=H[j].x)
{
// cout<<"A"<<endl;
X[++cot]=H[k];
}
}
sort(X+1,X+1+cot,cmd2);
for(int k=1;k<=cot;k++)
{
// cout<<X[k].y<<"A"<<endl;
}
int x1=H[i].x;
int x2=H[j].x;
// cout<<x1<<"B"<<x2<<endl;
for(int k=1;k<=cot-num+1;k++)
{
int y1=X[k].y;
int y2=X[k+num-1].y;
// cout<<y1<<"B"<<y2<<endl;
ans=min(ans,(x1-x2)*(y1-y2));
}
}
}
cout<<ans<<endl;
}
return 0;
}

  

2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 (2016 Stanford Local Programming Contest, Extended) J的更多相关文章

  1. 2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 (2016 Stanford Local Programming Contest, Extended) E

    链接:http://codeforces.com/gym/101116 学弟写的,以后再补 #include <iostream> #include <algorithm> # ...

  2. 2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 (2016 Stanford Local Programming Contest, Extended) I

    链接:http://codeforces.com/gym/101116 题意:选六个数,必须出现次数最多,且数字最小,如果出现7优先加入7 解法:排序,出现7优先加入7,最后再将6个数排序 #incl ...

  3. 2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 (2016 Stanford Local Programming Contest, Extended) B

    链接:http://codeforces.com/gym/101116 学弟做的,以后再补 #include <iostream> #include <stdio.h> #in ...

  4. 2016-2017 CT S03E06: Codeforces Trainings Season 3 Episode 6(8/13)

    2016-2017 CT S03E06: Codeforces Trainings Season 3 Episode 6 比赛连接: http://codeforces.com/gym/101124/ ...

  5. 2016-2017 CT S03E07: Codeforces Trainings Season 3 Episode 7 - HackerEarth Problems Compilation

    B: 思路: 暴力,每两个判断一下; C: 思路: 容斥定理,先枚举脖子下面那个点和那个不可描述的点,算出所有的方案数,这里面有多的腿当成了脖子或者胳膊的,然后就再枚举这种情况把这些减去,又减多了; ...

  6. 2016-2017 CT S03E02: Codeforces Trainings Season 3 Episode 2

    A HHPaint B Square Root C Interesting Places D Road to Home E Ant and apples F Square G Pair H The F ...

  7. 2016-2017 CT S03E06: Codeforces Trainings Season 3 Episode 6 The Baguette Master

    比赛看不懂 之后不确定题意去瞄了题解,需要分类讨论?囧 之后按照队友已经ac的题意 就是求外面一圈周长,直接可以求得 #include<bits/stdc++.h> using names ...

  8. 2016-2017 CT S03E07: Codeforces Trainings Season 3 Episode 7

    B. Pen Pineapple Apple Pen Solved. 题意:将一个序列合并成一个数. 思路:分类讨论一下, 水. #include<bits/stdc++.h> using ...

  9. 2014-2015 Codeforces Trainings Season 2 Episode 7 G Gophers --线段树

    题意: 有n个地鼠,m个CD碟,每个CD碟有一个影响范围,范围内的地鼠都会被吵到,每次有一个操作就是移动CD碟,然后求每次被影响的地鼠有多少只. 解法: 线段树做.我们只关注地鼠有没有被吵到就可以了, ...

随机推荐

  1. Java SE series:1. environment configure and Hello world! [We use compiler and packager to create an application!]

    1. cli (command line interface) and gui (graphic user interface) use javahome path, search classpath ...

  2. MyEclipse下如何安装svn插件

    方法一:在线安装 1.打开HELP->MyEclipse Configuration    不过多数情况下再myeclipse实现不了   Center.切换到SoftWare标签页. 2.点击 ...

  3. android测试(转)

    1.冒烟测试 跟web端的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃.这款原生sdk自带的monkey可以当做我们的测试工具.就跟我之前博客所 ...

  4. DataFrame使用mysql数据

    错误提示:  Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc ...

  5. js 去除空格

    var MAX_PERIOD = $('#MAX_PERIOD').val(); // 借款的最大期限 MAX_PERIOD=Trim(MAX_PERIOD,"g");   //带 ...

  6. 关于teleport_pro使用过程中的一点疑惑

    在我新建工程的时候,有两个选项,一个是"new project wizard"另一个是"new project",然后就纠结了,我应该使用那个呢? 使用第一个的 ...

  7. Java :List

    1.List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedListList myList = new ArrayList(); 2.List中可以添加任何对象,包括自己定义的 ...

  8. IO细述

    Java IO1:IO和File IO 大多数的应用程序都要与外部设备进行数据交换,最常见的外部设备包含磁盘和网络.IO就是指应用程序对这些设备的数据输入与输出,Java语言定义了许多类专门负责各种方 ...

  9. iOS使用静态变量

    之前看"Effective Objective-C 2.0", 第4条, 多用静态变量, 少用define. 正好我的项目有些东西是静态变量, 之前java我习惯起一个类, 里面全 ...

  10. centos安装apache

    查询是否已安装apache:  rpm -qa httpd 安装apache: yum install httpd -y 查询: chkconfig httpd on 启动: service http ...