Codeforces 994 C - Two Squares
C - Two Squares
思路:
点积叉积应用
代码:
#include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi acos(-1.0) #define LL long long #define mp make_pair #define pb push_back #define ls rt<<1, l, m #define rs rt<<1|1, m+1, r #define ULL unsigned LL #define pll pair<LL, LL> #define pii pair<int, int> #define piii pair<int,pii> #define mem(a, b) memset(a, b, sizeof(a)) #define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout); //headstruct P {double x, y;P(){}P(double x, double y):x(x), y(y) {}P operator - (P p) {return P(x-p.x, y-p.y);}double cross(P p) {return x*p.y - y*p.x;}double dot(P p) {return x*p.x + y*p.y;} }; typedef P Vector; bool on_seg(P p, Vector a, Vector b) {if((a-p).cross(b-p) == 0 && (a-p).dot(b-p) <= 0) return true;else return false; } double area2(Vector a, Vector b, Vector c) {return (b-a).cross(c-a); } bool intersect(Vector a, Vector b, Vector c, Vector d) {if(area2(a, c, d) == 0 && area2(b, c, d) == 0 && !on_seg(a, c, d) && !on_seg(b, c, d)|| area2(a, c, d) * area2(b, c, d) > 0|| area2(c, a, b) * area2(d, a, b) > 0) return false;else return true; } pii a[4], b[4]; int main() {for (int i = 0; i < 4; i++) scanf("%d %d", &a[i].fi, &a[i].se);for (int i = 0; i < 4; i++) scanf("%d %d", &b[i].fi, &b[i].se);for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {Vector aa(a[i].fi, a[i].se);Vector bb(a[(i+1)%4].fi, a[(i+1)%4].se);Vector c(b[j].fi, b[j].se);Vector d(b[(j+1)%4].fi, b[(j+1)%4].se);if(intersect(aa, bb, c, d)) return 0*puts("YES");}}for (int i = 0; i < 4; i++) {int x = 0, y = 0, xx = 0, yy = 0;for (int j = 0; j < 4; j++) {Vector A(a[i].fi, a[i].se), B(b[j].fi, b[j].se), C(b[(j+1)%4].fi, b[(j+1)%4].se);if(area2(A, B, C) > 0) x++;else if(area2(A, B, C) < 0)y++;else x++, y++;Vector AA(b[i].fi, b[i].se), BB(a[j].fi, a[j].se), CC(a[(j+1)%4].fi, a[(j+1)%4].se);if(area2(AA, BB, CC) > 0) xx++;else if(area2(AA, BB, CC) < 0) yy++;else xx++, yy++;}if(x == 4 || y == 4 || xx == 4 || yy == 4) return 0*puts("YES");}puts("NO");return 0; }
转载于:https://www.cnblogs.com/widsom/p/9277678.html
Codeforces 994 C - Two Squares相关推荐
- CodeForces - 11C How Many Squares?【DFS】
题目链接:https://codeforces.com/contest/11/problem/C 来自洛谷题解的做法,先找第一类正方形,再找第二类正方形,dfs找联通块并全部清除,判断1的数量是否构成 ...
- Check It Again:论文整理
蕴含简介 文本蕴含:文本间的推理关系,又称为文本蕴含关系,作为一种基本的文本间语义联系,广泛存在于自然语言文本中.简单的来说文本蕴含关系描述的是两个文本之间的推理关系,其中一个文本作为前提,另一个文本 ...
- vpc2007_了解VPC端点
vpc2007 If you are going to do one thing with your network traffic, it should be using https. But yo ...
- 【CodeForces - 124D】Squares (旋转坐标系,计算几何,思维)
题干: You are given an infinite checkered field. You should get from a square (x1; y1) to a square (x2 ...
- Codeforces Round #161 (Div. 2) B. Squares
题目:http://codeforces.com/contest/263/problem/B 在第一象限画n个以原点为顶点,(ai,ai)为对角顶点的正方形 输出任意一个k为顶点的正方形 思路:任意一 ...
- Codeforces 993A. Two Squares(暴力求解)
解题思路(暴力解法) 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点.即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形. 我们把两个正方形中的整数点都找出来, ...
- Codeforces Round #243 (Div. 1)——Sereja and Squares
题目链接 题意: 给n个点,求能组成的正方形的个数. 四边均平行与坐标轴 大神的分析: 经典题 我们考虑每一种x坐标,显然仅仅有<= sqrt{N}个x坐标出现了> sqrt{N}次,我们 ...
- CodeForces - 123B Squares(简单几何+旋转坐标系)
题目链接:点击查看 题目大意:给出一个无限大的二维坐标平面,现在有一些坏点,规定: 满足以上两条件之一的点即为坏点,现在问最少经过多少个坏点的情况下,可以从起点到达终点 题目分析:一开始没想到坏点是如 ...
- Codeforces 898E Squares and not squares
题目大意 给定 $n$($n$ 是偶数,$2\le n\le 2\times 10^{5}$)个非负整数 $a_1,\dots, a_n$($a_i\le 10^9$). 要求将其中 $n/2$ 个数 ...
最新文章
- 2017年6月份学习总结,读书《5个高效工作习惯,让你跟「瞎忙」划清界限》
- centos7.4安装图形界面及报错处理
- inline-block清除空隙2
- Android用户界面 UI组件--TextView及其子类(二) Button,selector选择器,sharp属性
- mysql默认密码是多少_192.168.3.1默认登录密码是多少【详细介绍】
- 如何用Python批量获取生意参谋商品来源信息
- 22-5 论如何将标准中国地图矢量化并且导入arcgis中
- 网络连接状态断开服务器无响应,解决SSH自动断线,无响应的问题。
- python回复qq消息,python自动化实现自动回复QQ消息
- groovy使用场景
- html图片自动在div里放大,HTML5+CSS3实现图片的放大/缩小
- 介绍 json_介绍
- javascript开发微信小程序,怎么把手写稿子转换成word,如何快速把手稿转换为电子稿
- JAVA record
- 成都百知教育:前4月阿拉山口口岸出口跨境电商包同比增长307%
- WEB前端整套教程html+divcss+javascript+jquery+html5-孙琪峥-专题视频课程
- java中发送邮件,如何设置发件人名称、昵称
- 目前主要的计算机汉字输入方法是什么,详解常见的汉字的输入方法
- 快播倒下了,网盘站起来
- MoPub sdk集成
热门文章
- L1-052 2018我们要赢-PAT团体程序设计天梯赛GPLT
- 蓝桥杯 ADV-211 算法提高 2-2整数求和
- PAT 1069. 微博转发抽奖(20)-乙级
- ios支付 选择货币_iOS开发中金钱货币的计算问题
- Oracle diag目录下面的大量trace trc文件
- 专访京东副总裁翁志:全方位解读 CNCC 2018「数据开创商业新生态」技术论坛 | CNCC 2018...
- UVa 401 - Palindromes
- 在Windows上编译和调试CoreCLR
- 指针数组与数组指针的区别
- hdu 3905(dp)