【USACO06JAN POJ3179】Corral the Cows

news/2024/11/15 4:27:04/

POJ

洛谷

分析

离散化+前缀和+二分

这题和激光炸弹很像,但由于坐标范围较大,需要用到二分。

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define il inline
#define maxn 10007
#define re register
#define tie0 cin.tie(0),cout.tie(0)
#define fastio ios::sync_with_stdio(false)
#define File(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout)
using namespace std;
typedef long long ll;template <typename T> inline void read(T &x) {T f = 1; x = 0; char c;for (c = getchar(); !isdigit(c); c = getchar()) if (c == '-') f = -1;for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);x *= f;
}struct pos {int x, y;
}p[maxn>>1];int n, c, cx, cy;
int x[maxn>>1], y[maxn>>1], hx[maxn], hy[maxn], sum[maxn>>1][maxn>>1];bool check(int lim) {for (int i = hx[lim]; i <= cx; ++i)for (int j = hy[lim]; j <= cy; ++j) {int x0 = 0, y0  = 0;if (x[i] - lim >= 0) x0 = hx[x[i]-lim];if (y[j] - lim >= 0) y0 = hy[y[j]-lim];if (sum[i][j] + sum[x0][y0] - sum[i][y0] - sum[x0][j] >=c ) return 1;}return 0;
}int main() {read(c), read(n);for (int i = 1; i <= n; ++i) {read(p[i].x), read(p[i].y);hx[p[i].x]++, hy[p[i].y]++;}for (int i = 1; i <= 10000; ++i) {if (hx[i]) x[++cx] = i; hx[i] = cx;if (hy[i]) y[++cy] = i; hy[i] = cy;}for (int i = 1; i <= n; ++i) sum[hx[p[i].x]][hy[p[i].y]]++;for (int i = 1; i <= cx; ++i)for (int j = 1; j <= cy; ++j)sum[i][j] += sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1];int l = 1, r = 10000;while (l < r) {int mid = l + r >> 1;if (check(mid)) r = mid;else l = mid + 1;}printf("%d", l);return 0;
}

转载于:https://www.cnblogs.com/hlw1/p/11409427.html


http://www.ppmy.cn/news/608913.html

相关文章

NVIDIA数据中心深度学习产品性能

NVIDIA数据中心深度学习产品性能 在现实世界的应用程序中部署AI&#xff0c;需要训练网络以指定的精度融合。这是测试AI系统的最佳方法-准备将其部署在现场&#xff0c;因为网络随后可以提供有意义的结果&#xff08;例如&#xff0c;对视频流正确执行图像识别&#xff09;。不…

003_如何学好英语?

一、 (1)实用在线词典推荐 剑桥&#xff08;中英/英英&#xff09;https://dictionary.cambridge.org/dictionary/牛津&#xff08;英英&#xff0c;可以查找同义词&#xff09;https://en.oxforddictionaries.com/definition/on_earth朗文&#xff08;英英&#xff09;https:/…

大数据必学语言Scala(三十二):scala高级用法 样例类

文章目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例类实例对象。后面,在并发编程和spark、flink这些框架也都会经常使用它。…

Python xlrd 读取excel表格 常用用法整理

xlrd 的使用 #!/usr/bin/python# # -*- coding: utf-8 -*- import xlrd import sys reload(sys) sys.setdefaultencoding("utf-8") # 打开excel table xlrd.open_workbook(/home/hly/hly/test.xls) # excel 地步表格的名称 sheetName table.sheet_names() print(…

大数据必学语言Scala(三十三):scala高级用法 模式匹配

文章目录 模式匹配 简单匹配 守卫 匹配类型 匹配集合

GPU上的基本线性代数

GPU上的基本线性代数 cuBLAS库提供了基本线性代数子例程&#xff08;BLAS&#xff09;的GPU加速实现。cuBLAS通过针对NVIDIA GPU进行了高度优化的嵌入式行业标准BLAS API来加速AI和HPC应用程序。cuBLAS库包含用于批处理操作&#xff0c;跨多个GPU的执行以及混合和低精度执行的扩…

nginx检查配置文件语法是否正常,需要检查主配置文件

https://www.shuizhongyueming.com/2014/11/04/the-possible-reason-for-the-nginx-error-emerg-server-directive-is-not-allowed-here/ 原文链接,懒得改了&#xff0c;就抄的&#xff0c;不要喷我&#xff0c;并不是为了盈利&#xff0c;纯属个人记录&#xff0c;方便自己以…

爬虫进阶-反爬破解2(破解加密登陆的过程+账号信息加密的常用算法)

目录 一、破解加密登陆的过程 二、账号信息加密的常用算法 一、破解加密登陆的过程 &#xff08;一&#xff09;开发者工具的栏目说明 Elements:网页元素 Network&#xff1a;网络请求记录 Control:控制栏、JS代码框 Sources&#xff1a;各类文件源码及调试 &#xff0…