【双指针】Square Pasture G(P7153)
正题
P7153
题目大意
给你平面上的若干点,让你画一个正方形,问框住的点有多少种组合
解题思路
先枚举正方形左右两边的点,然后用双指针计算正方形移动过程中1框住的点
然后把所有点x,y坐标取反,再做一次,这样可以把以上下/左右点为边界的正方形都计算出来
最后减去上下左右都有点的正方形去重
code
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 221
using namespace std;
ll n,l,r,len,ans,num,now,maxx,minn,d[N];
struct node
{ll x,y;
}a[N];
bool cmp(node a,node b)
{return a.x<b.x;
}
void solve()
{sort(a+1,a+1+n,cmp);for(ll i=1;i<=n;++i){d[now=1]=a[i].y;for(ll j=i+1;j<=n;++j){d[++now]=a[j].y;for(ll k=now;k>1;--k)if(d[k-1]>d[k])swap(d[k],d[k-1]);else break;len=a[j].x-a[i].x;if(abs(a[i].y-a[j].y)>len)continue;minn=max(a[i].y,a[j].y)-len;maxx=min(a[i].y,a[j].y);l=1;r=1;d[0]=-2000000001;d[now+1]=2000000001;while(d[l]<minn&&l<=now)l++;while(d[r]<minn+len&&r<=now)r++;while(d[l]<=maxx&&l<=now){while((d[r+1]-1)-(d[l-1]+1)<len&&r<=now)r++;//不会框到上下面的点while(d[r]<=d[l]+len&&r<=now){//在正方形范围内if(d[r]==d[l]+len)num++;ans++;r++;}l++;r--;}}}return;
}
int main()
{scanf("%lld",&n);ans=n+1;for(ll i=1;i<=n;++i)scanf("%lld%lld",&a[i].x,&a[i].y);solve();for(ll i=1;i<=n;++i)swap(a[i].x,a[i].y);solve();printf("%lld",ans-num/2);return 0;
}
【双指针】Square Pasture G(P7153)相关推荐
- C语言 cgi(2)
1 Columbia University cs3157 – Advanced Programming Summer 2014, Lab #3, 40 points June 10, 2014 Thi ...
- Zernike函数拟合曲面--MATLAB实现
利用前36阶zernike函数拟合曲面: 脚本程序 clc;clear; load unwrap_ph.mat unwrap_ph=max(max(unwrap_ph))-unwrap_ph; unw ...
- 【数学建模】2022数维杯国际赛C题 如何利用脑结构特征和认知行为特征诊断阿尔茨海默病(How to Diagnose Alzheimer‘s Disease)
2022数维杯国际赛C题 如何利用脑结构特征和认知行为特征诊断阿尔茨海默病 1 前言 2 问题重述 3 问题一求解 3.1 数据预处理 3.2 模型训练 3.2.1 逻辑回归 3.2.2 SVM 3. ...
- 使用js格式化json
var jsonStr;// json字符串 // 格式化json字符串 var jsonFormat = formatJson(jsonStr); // 工具方法 var formatJson = ...
- 形式化语言——时序逻辑
时序逻辑 在模型检测工具NuSMV中,时序逻辑是用来描述系统性质(或形式规约)的形式化语言,包括两类,一类是 线性时序逻辑(Linear-time Temporal Logic, LTL),另一类是分 ...
- 国密sm2加密算法 前后端加密实现
先看前端, 需要两个js目录如下,最下面把文件内容放出来 index.html文件内容如下 <!DOCTYPE html> <html> <head><met ...
- 图像分类经典卷积神经网络—ZFNet论文翻译(中英文对照版)—Visualizing and Understanding Convolutional Networks(可视化和理解卷积网络)
图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ZFNet纯中文版] Visualizing and Understanding Con ...
- Hadoop 和 Spark 知识点整理汇总
文章目录 前言 一.LINUX 系统常用命令汇总 二.Hadoop 常用命令汇总 三.Hadoop 基本概念 1. Hadoop 特性 2. Hadoop 架构 2.1 Hadoop 集群 2.2 H ...
- 2022第十三届蓝桥杯JAVAB组省赛总结
2022年第十三届蓝桥杯JAVAB组省赛 蓝桥杯准备了好久,毕竟学校还是认可,如果能进国赛还能有保研加分. 今年真是可惜了,题太难了,从去年买了Acwing的课,一直在学,没想到到最后是这么个情况. ...
最新文章
- 【玩转双11】今年有点不一样,51CTO学院告诉你如何省钱!
- PCL谢谢笔记 体素栅格滤波(下采样)
- C语言-用gcc指令体验C语言编译过程
- XMind2020的一些使用小技巧
- 让您的Eclipse具有千变万化的外观
- [Flashback]开启数据库闪回数据库功能
- python实现文件上传下载
- 程序员们的三高:高并发、高性能、高可用
- 2021年JavaScript的发展前景如何呢?
- 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高
- Windows server 2016 安装oracle
- VB2010实例(3)_闪烁的窗体
- 当8081端口被占用了怎么办?
- 全面赋能,OCR文字识别2022年多场景落地应用
- Android 点击屏幕空白处隐藏软键盘
- 语音外呼机器人邀请用户对营业厅评价
- 网络技术基础(六)网络互连技术
- 5.PS-快速选择和魔棒
- Vertu模仿秀遭热捧 折射黑手机泛滥主因
- java timsort_JDK(二)JDK1.8源码分析【排序】timsort
热门文章
- php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...
- openwrt安装蒲公英_网速不给力?双宽带叠加,立马消除卡顿
- spring boot jar包_「Spring Boot 新特性」 jar 大小自动瘦身
- mysql函数保留小数_MySql自定义函数-关于保留小数位的特殊需求
- python求解微分方程组_python – SymPy / SciPy:求解具有不同变量的常微分方程组...
- 数据结构——最短路径算法之floyd算法
- [mybatis]select_resultMap_自定义结果集映射规则
- C++ struct实现顺序表
- [蓝桥杯2015决赛]五星填数-枚举+数论
- c语言加花指令,花指令的应用