做题记录 Luogu 2202
时间:2021-07-08
本文章向大家介绍做题记录 Luogu 2202,主要包括做题记录 Luogu 2202使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
P2202 [USACO13JAN]Square Overlap S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
对每个点的 x 排序,将 y 放进 set 查找前驱后继
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 100005
struct Poll
{
ll x, y;
};
Poll a[N];
struct node
{
ll val, num;
};
bool operator < (node a1, node a2)
{
return a1.val < a2.val;
}
set<node> s;
bool cmp(Poll a1, Poll a2)
{
if(a1.x != a2.x)
{
return a1.x < a2.x;
}
return a1.y < a2.y;
}
ll n, k;
int main()
{
scanf("%lld%lld", &n, &k);
for(ll i = 1; i <= n; i++)
{
scanf("%lld%lld", &a[i].x, &a[i].y);
}
sort(a + 1, a + n + 1, cmp);
ll l = 1, r = 1, ans = 0;
while(r <= n)
{
while(l < r && a[r].x - a[l].x >= k)
{
s.erase((node){a[l].y, l});
l++;
}
s.insert((node){a[r].y, r});
set<node>::iterator it = s.find((node){a[r].y, r}), itt = it;
if(it-- != s.begin() && a[r].y - it -> val < k)
{
if(!ans)
{
ans = (k - abs(a[r].x - a[it -> num].x)) * (k - abs(a[r].y - it -> val));
}
else
{
ans = -1;
}
}
if(++itt != s.end() && itt -> val - a[r].y < k)
{
if(!ans)
{
ans = (k - abs(a[r].x - a[itt -> num].x)) * (k - abs(a[r].y - itt -> val));
}
else
{
ans = -1;
}
}
r++;
}
printf("%lld", ans);
return 0;
}
原文地址:https://www.cnblogs.com/fanypcd/p/14988706.html
- 算法:支持重复元素的二分查找
- .NET 异常处理的动作策略(Action Policy)
- 如何在mac本上安装android sdk
- Fityk-曲线拟合工具
- maven: 打包可运行的jar包(java application)及依赖项处理
- Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
- 恶心的0.5四舍五入问题
- 乐视金融更名 相关域名引关注
- weblogic.nodemanager.common.ConfigException: Native version is enabled but nodemanager native librar
- hadoop 2.6伪分布安装
- ssh 免密码设置失败原因总结
- C++服务器开发之基于对象的编程风格
- The jQuery UI CSS Framework
- hadoop:将WordCount打包成独立运行的jar包
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php时间戳转换代码详解
- thinkPHP和onethink微信支付插件分享
- PHP各种常见经典算法总结【排序、查找、翻转等】
- php字符串截取函数mb_substr用法实例分析
- PHP利用DWZ.CN服务生成短网址
- php精度计算的问题解析
- PHP使用Session实现上传进度功能详解
- php常用字符串查找函数strstr()与strpos()实例分析
- php 根据URL下载远程图片、压缩包、pdf等文件到本地
- PHP使用HTML5 FormData对象提交表单操作示例
- python接入支付宝的实例操作
- php实现网页上一页下一页翻页过程详解
- Yii 使用intervention/image拓展实现图像处理功能
- PHP常用的类封装小结【4个工具类】
- 微信公众号之主动给用户发送消息功能