[luoguP2862] [USACO06JAN]把牛Corral the Cows(二分 + 乱搞)


传送门

可以二分边长

然后另开两个数组,把x从小到大排序,把y从小到大排序

枚举x,可以得到正方形的长

枚举y,看看从这个y开始,往上能够到达多少个点,可以用类似队列来搞

其实发现算法的本质之后,x可以不用从小到大排序

#include <cstdio> #include <iostream> #include <algorithm> #define N 1001 #define max(x, y) ((x) > (y) ? (x) : (y)) int c, n, ans; int x[N], y[N], a[N], b[N]; inline int read() inline bool cmp1(int a, int b) inline bool cmp2(int a, int b) inline bool check(int len) if(sum >= c) return 1; if(l <= x[b[j]] && x[b[j]] <= r) sum; } } return 0; } int main() std::sort(a + 1, a + n + 1, cmp1); std::sort(b + 1, b + n + 1, cmp2); while(l <= r) printf("%d\n", ans); return 0; }

  



上一篇:[luoguP3608] [USACO17JAN]Balanced Photo平衡的照片(树状数组 + 离散化)

下一篇:hihoCoder#1196 : 高斯消元&#183;二(开关灯问题)


stl 二分
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图