金组题什么的都要绕个弯才能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 奶牛围栏的更多相关文章

  1. 【BZOJ1720】[Usaco2006 Jan]Corral the Cows 奶牛围栏 双指针法

    [BZOJ1720][Usaco2006 Jan]Corral the Cows 奶牛围栏 Description Farmer John wishes to build a corral for h ...

  2. BZOJ1720:[Usaco2006 Jan]Corral the Cows 奶牛围栏

    我对二分的理解:https://www.cnblogs.com/AKMer/p/9737477.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  3. 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 ...

  4. 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 & ...

  5. 【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 ...

  6. 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 ...

  7. 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 ...

  8. 【BZOJ】1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会(tarjan)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1654 请不要被这句话误导..“ 如果两只成功跳圆舞的奶牛有绳索相连,那她们可以同属一个组合.” 这句 ...

  9. 【强连通分量】Bzoj1654 [Usaco2006 Jan]The Cow Prom 奶牛舞会

    Description 约翰的N(2≤N≤10000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别上鲜花,她们要表演圆舞.     只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一个圆形的 ...

随机推荐

  1. [Linux] 账户管理命令(一)

    用户和用户组 Linux用户组的所有信息都存放在/etc/group文件中.具有某种共同特征的用户集合起来就是用户组(Group).用户组(Group)配置文件主要有 /etc/group和/etc/ ...

  2. STM32f103之外部中断

    一.背景 有个需求,IO口检测上升沿,然后做相应的动作.在此记录STM32F103的外部中断结构及配置方法, 以备下次快速上手使用. 有许多不太明白,又是老司机(:-D)帮忙,真的是站在别人的肩膀上会 ...

  3. python 多个 %s 例子

    input = , ) input 为: '{"a" : 1234, "b" : "14289", "c": " ...

  4. Unity3D NGUI刮刮卡效果

    线上效果 确保你的纹理的read/write 是勾选的,纹理格式是 RGBA32的 //代码 using UnityEngine; [RequireComponent(typeof(UITexture ...

  5. Class.forName的使用

    Class.forName的使用 Class.forName返回一个类,使用此方法可以获取类 首先,创建一个Student类 /*** * This Class is for Student bean ...

  6. 整合SSM时报错:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;

    在整合Spring和MyBatis时,只进行了简单的插入操作,结果报了这个错,顿时整个人都崩溃了 -- 一点都看不懂嘛!只有网上搜索 结果是在使用MyBatis3.x和Spring4.x整合是 导入的 ...

  7. qt 标准对话框

    if (QMessageBox::Yes == QMessageBox::question(this, tr("Question"),                        ...

  8. iOS 图片选择器 总结

    UIImagePickerController #pragma mark 从用户相册获取活动图片 - (void)pickImageFromAlbum{ imagePicker = [[UIImage ...

  9. sql server 对象资源管理器(二)

    SQL会缓存大量的数据页面,他还会缓存很多其他信息,包括存储过程的执行计划 ,特定用户的安全上下文等 如果这些信息没有在数据库中缓存,SQL都要重新计算一遍,花额外的时间,所以SQLSERVER对内存 ...

  10. jsf初学解决faces 中文输入乱码问题

    中文乱码,貌似在java里很常见,请看简单代码: 很简单的faces <div class="td-block"> <h:outputLabel class=&q ...