洛谷 P2202 [USACO13JAN]方块重叠Square Overlap

Description

  • 在一个直角坐标系中,有N个边长为K的正方形。

    给出每一个正方形的中心,请判断所有的正方形是否有重叠。

    输入数据保证每一个正方形的中心不重合

Input

  • * 第1行 :两个正整数: N , K

    其中:2 <= N <= 50 000 ,1 <= K <= 1 000 000 ,K保证是偶数

    *第2 .. i+1行:每行有两个整数xi,yi,描述了第i个正方形的中心。

    其中:xi,yi均在[-1 000 000,1 000 000]内

Output

  • 只输出一行:

    如果没有正方形重叠,输出“0”;如果有且只有一对正方形重叠,输出它们重叠的面积;如果有两对及以上的正方形重合,输出"-1";

    注意:在输出答案后一定要输换行符!

Sample Input

4 6
0 0
8 4
-2 1
0 7

Sample Output

20

题解:

  • 模拟。
  • 正解貌似是线性扫描,其实是优化的暴力。但是我这种本人玄学优化的代码就卡过去了。
  • 正常写就是直接判断是否重叠然后算重叠面积,O(n ^ 2)
  • 我无非就是以x为关键字排了个序,其它做法同上,O(n * ?),轻轻松松被卡成O(n ^ 2)
  • 这题稍微麻烦点的就是算重叠面积。首先重叠面积 = 重叠水平距离 * 重叠竖直距离。
  • 水平距离因为是按照x排了序的,所以很容易得出。竖直距离是需要分类讨论一下,经过我手画之后,有以下3种情况:

  • 然后依据图片分别就可以容易算出竖直距离了。
#include <iostream>
#include <cstdio>
#include <algorithm>
#define N 50005
using namespace std;struct A {int x, y;} a[N];
int n, k, ans, tot;int read()
{int x  = 0, f = 1; char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0'  && c <= '9') {x = x * 10 + c - '0'; c = getchar();}return x *= f;
}bool cmp(A u, A v) {return u.x < v.x;}int main()
{n = read(), k = read(), k /= 2;for(int i = 1; i <= n; i++) a[i].x = read(), a[i].y = read();sort(a + 1, a + 1 + n, cmp);for(int i = 1; i < n; i++){int j = i + 1;while(a[i].x + k > a[j].x - k && j <= n){int len1 = a[i].x + k - a[j].x + k, len2 = 0, tmp;if(a[i].y == a[j].y) len2 = 2 * k;else if(a[i].y + k >= a[j].y - k && a[j].y - k >= a[i].y - k) len2 = a[i].y + k - a[j].y + k;else if(a[i].y - k <= a[j].y + k && a[j].y + k <= a[i].y + k) len2 = a[j].y + k - a[i].y + k;tmp = len1 * len2;if(tmp){ans = tmp;if(++tot == 2) {cout << -1 << endl; return 0;}}j++;}}if(!tot) cout << 0 << endl;else cout << ans << endl;return 0;
}

转载于:https://www.cnblogs.com/BigYellowDog/p/11323486.html

洛谷 P2202 [USACO13JAN]方块重叠Square Overlap相关推荐

  1. 大力stl——P2202 [USACO13JAN]方块重叠Square Overlap

    https://daniu.luogu.org/problem/show?pid=2202#sub 总觉的自己的stl不好,现在是要好好补一补: 首先这道题目大家去看zhzh2001的题解: 我们需要 ...

  2. 题解 洛谷 P3069 [USACO13JAN]牛的阵容Cow Lineup

    洛谷P3069[USACO13JAN]牛的阵容CowLineup\color{#00F}{洛谷\ P3069\ [USACO13JAN]牛的阵容Cow Lineup}洛谷 P3069 [USACO13 ...

  3. 洛谷 P3041 视频游戏的连击Video Game Combos(AC自动机+拓扑排序+数位DP)

    洛谷 P3041 视频游戏的连击Video Game Combos 难度一般,不过这个数位DP其实应该叫做记忆化搜索 题意:玩游戏时可以通过按键组合打出combo技能:然后是已知N个combo的按键方 ...

  4. 洛谷 P1019 单词接龙 (DFS)

    题目传送门 当时一看到这题,蒟蒻的我还以为是DP,结果发现标签是搜索-- 这道题的难点在于思路和预处理,真正的搜索实现起来并不难.我们可以用一个贪心的思路,开一个dic数组记录每个单词的最小重复部分, ...

  5. 洛谷-DFS-1019-单词接龙-个人AC题解和公共AC题解笔记

    学习内容: 预处理 万能头文件 string的使用 话不多说,直奔主题 本人AC代码 #include<iostream> #include<cstdio> #include& ...

  6. 【动态规划】洛谷 P1282 多米诺骨牌

    [动态规划]洛谷 P1282 多米诺骨牌 时间限制: 1 Sec  内存限制: 128 MB 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下 ...

  7. 洛谷 深基 第1部分 语言入门 第5章 数组与数据批量存储

    P1428 小鱼比可爱 小鱼比可爱 - 洛谷 P1427 小鱼的数字游戏 小鱼的数字游戏 - 洛谷 P5727 [深基5.例3]冰雹猜想 [深基5.例3]冰雹猜想 - 洛谷 P5727 [深基5.例3 ...

  8. 深搜+广搜——Lake Counting S(洛谷 P1596)

    题目选自洛谷P1596 这道题目我觉得是比较综合的搜索题了,可以用dfs.bfs来解题.下面给出2种方法的思路: 首先,确定什么情况是一个水坑: 对于每一个'w' ,如果在八个方向上有于其相邻的'w' ...

  9. 深度优先搜索——单词接龙(洛谷 P1019)

    题目选自洛谷P1019 首先在题意上可能有些误解. 两个单词合并时,合并部分取的是最小重叠部分 相邻的两部分不能存在包含关系就是说如果存在包含关系,就不能标记为使用过. 每个单词最多出现两次. (其实 ...

最新文章

  1. 最近5年,诺贝尔化学奖都颁给了谁?
  2. 耗时6个月整理的最全Java资源,限时删
  3. 【扫盲帖】Java、JavaScript、JSP、JScript 的区别与联系
  4. DevExpress ChartControl大数据加载时有哪些性能优化方法
  5. 算法杂货铺——k均值聚类(K-means)
  6. 2020 阿里云原生实战峰会即将开幕 云原生落地的正确姿势
  7. 恒生电子实施怎么样_蓝思科技今年来涨幅超166%,消费电子主题基金如何挑选?...
  8. VLAN访问控制列表(VACL)的配置方法
  9. Java核心(二)深入理解线程池ThreadPool
  10. tensorflow2.1学习--常用函数三
  11. andrioid .9.png图片的制作
  12. python试题库_python 题库
  13. 微信小程序蓝牙打印开发心得
  14. redis抽奖并发_redis并发操作(lpop/lpush实现)
  15. HBuilder打包App教程
  16. s-function的介绍
  17. HTML--图片的插入
  18. Java哪些是线程安全的_Java集合中那些类是线程安全的
  19. 26.java-BufferedWriter写文件
  20. Elasticsearch:Rank feature query - 排名功能查询

热门文章

  1. Unity3D基础知识笔记
  2. 差别阈限法,其依据是韦伯定律还是费希纳定律?|小白心理-312/347考研答疑
  3. 关于满意度调查报告--用SPSS输出各指标满意度得分和样本量
  4. Windows 下安装 Erlang
  5. 【Metashape精品教程8】减少误差——优化和相机校准
  6. 图论基础知识(一) —— 图
  7. linux basic ------ dd 和 cp 的区别
  8. rs5000安装计算机重启,rslogix5000序列号
  9. BUUCTF msic 专题(116)[GKCTF 2021]excel 骚操作
  10. win10窗口切换快捷键