2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 (2016 Stanford Local Programming Contest, Extended) J
链接: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的更多相关文章
- 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> # ...
- 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 ...
- 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 ...
- 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/ ...
- 2016-2017 CT S03E07: Codeforces Trainings Season 3 Episode 7 - HackerEarth Problems Compilation
B: 思路: 暴力,每两个判断一下; C: 思路: 容斥定理,先枚举脖子下面那个点和那个不可描述的点,算出所有的方案数,这里面有多的腿当成了脖子或者胳膊的,然后就再枚举这种情况把这些减去,又减多了; ...
- 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 ...
- 2016-2017 CT S03E06: Codeforces Trainings Season 3 Episode 6 The Baguette Master
比赛看不懂 之后不确定题意去瞄了题解,需要分类讨论?囧 之后按照队友已经ac的题意 就是求外面一圈周长,直接可以求得 #include<bits/stdc++.h> using names ...
- 2016-2017 CT S03E07: Codeforces Trainings Season 3 Episode 7
B. Pen Pineapple Apple Pen Solved. 题意:将一个序列合并成一个数. 思路:分类讨论一下, 水. #include<bits/stdc++.h> using ...
- 2014-2015 Codeforces Trainings Season 2 Episode 7 G Gophers --线段树
题意: 有n个地鼠,m个CD碟,每个CD碟有一个影响范围,范围内的地鼠都会被吵到,每次有一个操作就是移动CD碟,然后求每次被影响的地鼠有多少只. 解法: 线段树做.我们只关注地鼠有没有被吵到就可以了, ...
随机推荐
- [原创] 在spring 中使用quarts
1.使用maven加载 quarts 的jar <dependency> <groupId>org.quartz-scheduler</groupId> <a ...
- 利用MyEclipes的反转工程来配置Hibernate各种配置
首先需要有设计好的数据库,然后创建一个Web Project然后右键点击项目选择MyEclipse→add Hibernate Capabilities →→ →→,然后如果没有管理员的话需要在选择M ...
- linux扩大swap交换空间
有两种解决方法:一是创建新的swap分区;另一则是创建swap文件 创建swap文件如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap ...
- 数据可视化工具zeppelin安装
介绍 zeppelin主要有以下功能 数据提取 数据发现 数据分析 数据可视化 目前版本(0.5-0.6)之前支持的数据搜索引擎有如下 安装 环境 centOS 6.6 编译准备工作 sudo yum ...
- backend flow
在PD之后,netlist中会多出很多DCAP元件(去耦电容,减少IR-Drop)或者filter cell(保证芯片均匀度要求) 还有一些antenna cell也就是一些diode用来泻流,防止天 ...
- win7 IIS发布项目遇到的问题
问题一: HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 1.依次打开控制面板 ...
- Limit the query running time with Resource limit facility (RLF)
If you need to limit the query(package,plan) running time, but the JCL/JOB TIME parameters doesn't w ...
- C语言初学者代码中的常见错误与瑕疵(7)
问题: 矩形的个数 在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形.给出A,B,计算可以从中找到 ...
- knockout之入门介绍
Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript的前端UI简单化.Knockout是一个以数据模型(data model)为基础的能够帮助你创建丰富文本,响应显示和编 ...
- 【Winfrom】简单的焦点设置问题
原文: http://blog.csdn.net/zlwzlwzlw/article/details/8573921 初始的时候希望指定控件的焦点 不能用load事件 要用Activated事件才行 ...