bzoj1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏
金组题什么的都要绕个弯才能AC。。不想银组套模板= =
题目大意:给n个点,求最小边长使得此正方形内的点数不少于c个
首先一看题就知道要二分边长len
本来打算用二维前缀和来判断,显然时间会爆,而且坐标最大10000是不可行的
为保证效率,检验的时间应该在O(n2)
所以我们先给x排个序,以每个点的x坐标为左边界,x+len-1为右边界
然后以y为关键字从小到大序后枚举点,用双指针法O(n)更新len以内能保存多少个点
点数大于等于c就可行
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
;
int x[maxn],y[maxn],l,r,a[maxn],b[maxn],c,n;
bool cmp1(int a, int b){return x[a]<x[b];}
bool cmp2(int a, int b){return y[a]<y[b];}
bool check(int len){
;
; i<=n; i++){
left=x[a[i]]; right=left+len-;
ans=;
;
; j<=n; j++){
<=len && k<=n){
if (x[b[k]]>=left && x[b[k]]<=right) {
ans++;
// printf(" %d %d %d %d %d\n", x[b[j]], x[b[k]], y[b[j]], y[b[k]], ans);
}
k++;
}
// printf("%d %d %d %d %d\n", left, right, y[b[j]], y[b[j]]+len-1, ans);
;
if (x[b[j]]>=left && x[b[j]]<=right) ans--;
}
}
;
}
int main(){
scanf("%d%d", &c, &n);
; i<=n; i++){
scanf("%d%d", &x[i], &y[i]);
r=max(r,x[i]); r=max(r,y[i]);
a[i]=b[i]=i;
}
sort(a+,a++n,cmp1);//x从小到大 枚举列
sort(b+,b++n,cmp2);//y从小到大 枚举行
l=;
;
while (l<=r){
;
;
;
}
printf("%d\n", ans);
;
}
bzoj1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏的更多相关文章
- 【BZOJ1720】[Usaco2006 Jan]Corral the Cows 奶牛围栏 双指针法
[BZOJ1720][Usaco2006 Jan]Corral the Cows 奶牛围栏 Description Farmer John wishes to build a corral for h ...
- BZOJ1720:[Usaco2006 Jan]Corral the Cows 奶牛围栏
我对二分的理解:https://www.cnblogs.com/AKMer/p/9737477.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...
- BZOJ——1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏
http://www.lydsy.com/JudgeOnline/problem.php?id=1720 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1 ...
- bzoj 1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会 -- Tarjan
1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会 Time Limit: 5 Sec Memory Limit: 64 MB Description The N (2 & ...
- 【BZOJ1654】[Usaco2006 Jan]The Cow Prom 奶牛舞会 赤果果的tarjan
Description The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in ...
- bzoj1654 [Usaco2006 Jan]The Cow Prom 奶牛舞会
Description The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in ...
- bzoj:1654 [Usaco2006 Jan]The Cow Prom 奶牛舞会
Description The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in ...
- 【BZOJ】1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会(tarjan)
http://www.lydsy.com/JudgeOnline/problem.php?id=1654 请不要被这句话误导..“ 如果两只成功跳圆舞的奶牛有绳索相连,那她们可以同属一个组合.” 这句 ...
- 【强连通分量】Bzoj1654 [Usaco2006 Jan]The Cow Prom 奶牛舞会
Description 约翰的N(2≤N≤10000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别上鲜花,她们要表演圆舞. 只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一个圆形的 ...
随机推荐
- IOS系统基础知识
在iOS应用中,每个程序得main函数中都调用了UIApplicationMain函数. 1 2 3 4 5 6 int main(int argc, char *argv[]) { @a ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- sql中case when语句的使用-来自网摘文章
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...
- T-SQL备忘-表连接更新
1.update a inner join b on a.id=b.id set a.name=b.name where ... 2.update table1 set a.name = b.na ...
- C和指针 第十四章 预处理器 头文件
编写一个C程序,第一个步骤称为预处理,预处理在代码编译之前,进行一些文本性质的操作,删除注释.插入被include的文件.定义替换由#define定义的符号,以及确定代码的部分内容是否应该按照条件编译 ...
- 在OSX和Windows版本Docker上运行GUI程序
看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issue ...
- BZOJ1562——[NOI2009]变换序列
1.题意:题意有些难理解 2.分析:我们发现如果要求判断是否合法的话就so easy了,二分图匹配即可,但是我们发现要求输出字典序最小的,那么我们在匈牙利的时候就倒着枚举,另外邻接表中的边一定要排好序 ...
- html中表格元素的相关总结
表格元素相关总结: 1.在CSS中,内部表元素(如td.tr.col等)生成矩形框,这些矩形框包含内容.内边距和边框,但没有外边距,因此如果定义外边距,浏览器将忽略该定义:对于table元素,外边距有 ...
- 《sqoop实现hdfs中的数据导出至mysql数据库》
报错Access denied for user 'root'@'localhost' (using password: YES) 参考一 参考二 登陆mysql时,root密码的修改 参考帖子h ...
- GitHub for windows呆瓜级入门
一.GitHub是一个远程数据托管平台,对于代码用于版本控制(保存各个阶段的代码版本).首先去 https://github.com/ 注册一个GitHub账号 二.输入用户名(不能重复,相当于在Gi ...