正题

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)相关推荐

  1. C语言 cgi(2)

    1 Columbia University cs3157 – Advanced Programming Summer 2014, Lab #3, 40 points June 10, 2014 Thi ...

  2. Zernike函数拟合曲面--MATLAB实现

    利用前36阶zernike函数拟合曲面: 脚本程序 clc;clear; load unwrap_ph.mat unwrap_ph=max(max(unwrap_ph))-unwrap_ph; unw ...

  3. 【数学建模】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. ...

  4. 使用js格式化json

    var jsonStr;// json字符串 // 格式化json字符串 var jsonFormat = formatJson(jsonStr); // 工具方法 var formatJson = ...

  5. 形式化语言——时序逻辑

    时序逻辑 在模型检测工具NuSMV中,时序逻辑是用来描述系统性质(或形式规约)的形式化语言,包括两类,一类是 线性时序逻辑(Linear-time Temporal Logic, LTL),另一类是分 ...

  6. 国密sm2加密算法 前后端加密实现

    先看前端, 需要两个js目录如下,最下面把文件内容放出来 index.html文件内容如下 <!DOCTYPE html> <html> <head><met ...

  7. 图像分类经典卷积神经网络—ZFNet论文翻译(中英文对照版)—Visualizing and Understanding Convolutional Networks(可视化和理解卷积网络)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ZFNet纯中文版] Visualizing and Understanding Con ...

  8. Hadoop 和 Spark 知识点整理汇总

    文章目录 前言 一.LINUX 系统常用命令汇总 二.Hadoop 常用命令汇总 三.Hadoop 基本概念 1. Hadoop 特性 2. Hadoop 架构 2.1 Hadoop 集群 2.2 H ...

  9. 2022第十三届蓝桥杯JAVAB组省赛总结

    2022年第十三届蓝桥杯JAVAB组省赛 蓝桥杯准备了好久,毕竟学校还是认可,如果能进国赛还能有保研加分. 今年真是可惜了,题太难了,从去年买了Acwing的课,一直在学,没想到到最后是这么个情况. ...

最新文章

  1. 【玩转双11】今年有点不一样,51CTO学院告诉你如何省钱!
  2. PCL谢谢笔记 体素栅格滤波(下采样)
  3. C语言-用gcc指令体验C语言编译过程
  4. XMind2020的一些使用小技巧
  5. 让您的Eclipse具有千变万化的外观
  6. [Flashback]开启数据库闪回数据库功能
  7. python实现文件上传下载
  8. 程序员们的三高:高并发、高性能、高可用
  9. 2021年JavaScript的发展前景如何呢?
  10. 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高
  11. Windows server 2016 安装oracle
  12. VB2010实例(3)_闪烁的窗体
  13. 当8081端口被占用了怎么办?
  14. 全面赋能,OCR文字识别2022年多场景落地应用
  15. Android 点击屏幕空白处隐藏软键盘
  16. 语音外呼机器人邀请用户对营业厅评价
  17. 网络技术基础(六)网络互连技术
  18. 5.PS-快速选择和魔棒
  19. Vertu模仿秀遭热捧 折射黑手机泛滥主因
  20. java timsort_JDK(二)JDK1.8源码分析【排序】timsort

热门文章

  1. php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...
  2. openwrt安装蒲公英_网速不给力?双宽带叠加,立马消除卡顿
  3. spring boot jar包_「Spring Boot 新特性」 jar 大小自动瘦身
  4. mysql函数保留小数_MySql自定义函数-关于保留小数位的特殊需求
  5. python求解微分方程组_python – SymPy / SciPy:求解具有不同变量的常微分方程组...
  6. 数据结构——最短路径算法之floyd算法
  7. [mybatis]select_resultMap_自定义结果集映射规则
  8. C++ struct实现顺序表
  9. [蓝桥杯2015决赛]五星填数-枚举+数论
  10. c语言加花指令,花指令的应用