解题思路(暴力解法)

  1. 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点。即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形。
  2. 我们把两个正方形中的整数点都找出来,看一下有没有重复点,就可以判断是否相交。

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct point{
int x;int y;
}sq[4],sp[4]; bool cmp(point a,point b){
if(a.x == b.x) return a.y < b.y;
return a.x < b.x;
} //t[i][j]=1表示第一个正方形包含这个点。
int t[220][220];
void tian(point a,point b){
for(int i = a.x;i <= b.x; ++i){
for(int j = a.y;j <= b.y; ++j){
t[i][j] = 1;
}
}
} //判断第二个正方形是否包含t[i][j]为1的点(i,j)
bool judge(point* sp){
for(int i = sp[0].x;i <= sp[1].x; ++i){
for(int j = 0;j <= i-sp[0].x; ++j){
if(t[i][sp[0].y+j] == 1 or t[i][sp[0].y-j] == 1){
return true;
}
}
}
for(int i = sp[1].x;i <= sp[3].x; ++i){
for(int j = 0;j <= sp[2].y-sp[0].y-(i-sp[1].x); ++j){
if(t[i][sp[0].y+j] == 1 or t[i][sp[0].y-j] == 1){
return true;
}
}
}
return false;
} int main(){
for(int i = 0;i < 4; ++i) cin >> sq[i].x >> sq[i].y, sq[i].x+=100,sq[i].y+=100;
for(int i = 0;i < 4; ++i) cin >> sp[i].x >> sp[i].y, sp[i].x+=100,sp[i].y+=100;
sort(sq,sq+4,cmp);
sort(sp,sp+4,cmp);
tian(sq[0],sq[3]);
if(judge(sp)) cout << "YES" << endl;
else cout << "NO" << endl;
return 0;
}

Codeforces 993A. Two Squares(暴力求解)的更多相关文章

  1. CodeForces 993A Two Squares(数学 几何)

    https://codeforces.com/problemset/problem/993/A 题意: 给你两个矩形,第一行是一个正面表示的矩形,第二个是一个旋转四十五度角的矩形,问这两个矩形是否相交 ...

  2. POJ 1562(L - 暴力求解、DFS)

    油田问题(L - 暴力求解.DFS) Description The GeoSurvComp geologic survey company is responsible for detecting ...

  3. 逆向暴力求解 538.D Weird Chess

    11.12.2018 逆向暴力求解 538.D Weird Chess New Point: 没有读好题 越界的情况无法判断,所以输出任何一种就可以 所以他给你的样例输出完全是误导 输出还搞错了~ 输 ...

  4. 隐型马尔科夫模型(HMM)向前算法实例讲解(暴力求解+代码实现)---盒子模型

    先来解释一下HMM的向前算法: 前向后向算法是前向算法和后向算法的统称,这两个算法都可以用来求HMM观测序列的概率.我们先来看看前向算法是如何求解这个问题的. 前向算法本质上属于动态规划的算法,也就是 ...

  5. BestCoder Round #79 (div.2)-jrMz and angles,,暴力求解~

    jrMz and angle       Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/Other ...

  6. hdu6570Wave (暴力求解)

    Problem Description Avin is studying series. A series is called "wave" if the following co ...

  7. <字符串匹配>KMP算法为何比暴力求解的时间复杂度更低?

    str表示文本串,m表示模式串; str[i+j] 和 m[j] 是正在进行匹配的字符; KMP的时间复杂度是O(m+n)  ,  暴力求解的时间复杂度是O(m*n) KMP利用了B[0:j]和A[i ...

  8. CodeForces 339C Xenia and Weights(暴力求解DFS)

    题意:给定 1-10的某几种砝码,给定的每种有无穷多个,然后放 m 个在天平上,要满足,相邻的两次放的砝码不能是同一种,然后是在天平两端轮流放,并且放在哪一个托盘上,那么天平必须是往哪边偏. 析:这个 ...

  9. Codeforces 986A. Fair(对物品bfs暴力求解)

    解题思路: 1.对物品i bfs,更新每个小镇j获得每个物品i的最短距离. 2.时间复杂度o(n*k),满足2s的要求. 代码: #include <iostream> #include ...

随机推荐

  1. VHDL之package

    Pacakge Frequently used pieces of VHDL code are usually written in the form of COMPONENTS, FUNCTIONS ...

  2. 2014 Container技术大会:未来Linux Container会是PaaS平台的核心

    不应错过2014 Container技术大会的九大理由. 一.Docker官方人员再次来到北京,首次向中国布道Docker技术.2013年Docker高级软件工程师Jerome Petazzoni,曾 ...

  3. 将自己的类封装为lib的方法

    前言: Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL. (1)   Kernel32.dll 它包含那些用于管理内存.进程和线程的函数,例如CreateThread函数 ...

  4. C# 解析 j s 三元运算符

    private void button1_Click(object sender, EventArgs e) { //转换 string str1 = "表达式1?表达式2:表达式3&quo ...

  5. Java中Scanner类的使用

    一个可以解析基本类型和字符串的简单文本扫描器. 例如,以下代码使用户能够从 System.in 中读取一个数: public class ApiScanner { public static void ...

  6. JDK源码中的英文注释翻译(Class)

    public final class Class<T> implements java.io.Serializable, GenericDeclaration, Type, Annotat ...

  7. Final 用法

    可修饰:类及类的成员.成员变量.局部变量,不能修饰构造方法 final修饰的类不能被继承但可以继承其他的类 final修饰的类不能被重写和继承,子类修改的方法可以加继承 final修饰的局部变量和成员 ...

  8. BZOJ 1123: [POI2008]BLO 求割点_乘法原理_计数

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n&l ...

  9. JSCH实现文件上传下载至sftp服务器

    文件服务器采用FreeSSHd,文件服务器配置就不细说了. 直接上代码,该代码可以直接使用. import com.jcraft.jsch.*; import java.io.InputStream; ...

  10. [GSS5] Can you answer these queries V

    大力讨论. luogu上交spoj的题卡的一比... 难受 wa了好几次,原因大概首先求的是非空区间,不能乱和0取max,第二点是求无相交的解时,在两段求lmx和rmx的时候可以取max(0). 区间 ...