大模拟题,按要求建立多边形,先定位斜边的位置,再分类讨论~

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
struct node {
double x,y;
}Node[][maxn];
double distance (node a,node b) {
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int isXiebian (node a,node b) {
if (a.x!=b.x&&a.y!=b.y) return ;
return ;
}
double angle (node a,node b) {
return fabs(a.x-b.x)/fabs(a.y-b.y);
}
vector<double> edge[];
int main () {
int T;
scanf ("%d",&T);
int k1,k2;
while (T--) {
edge[].clear();edge[].clear();
scanf ("%d",&k1);
for (int i=;i<k1;i++) scanf ("%lf %lf",&Node[][i].x,&Node[][i].y);
scanf ("%d",&k2);
for (int i=;i<k2;i++) scanf ("%lf %lf",&Node[][i].x,&Node[][i].y);
double xie1=,xie2=,cnt1=,cnt2=,angle1,angle2,p1,p2;
for (int i=;i<k1;i++) {
int j=i<k1-?i+:;
if (isXiebian(Node[][i],Node[][j])) xie1=distance(Node[][i],Node[][j]),cnt1++,
angle1=angle(Node[][i],Node[][j]);
edge[].push_back(distance(Node[][i],Node[][j]));
}
for (int i=;i<k2;i++) {
int j=i<k2-?i+:;
if (isXiebian(Node[][i],Node[][j])) xie2=distance(Node[][i],Node[][j]),cnt2++,
angle2=angle(Node[][i],Node[][j]);
edge[].push_back(distance(Node[][i],Node[][j]));
}
if (k1+k2>||k1+k2<) printf ("NO\n");
else if (xie1==xie2&&cnt1==&&cnt2==) {
if ((angle1==angle2||angle1*angle2==)&&(k1!=||k2!=)) printf ("YES\n");
else if (k1==&&k2==) {
double z1=p1<k1-?p1+:p1+-k1;
double z2=p2<k2-?p2+:p2+-k2;
double z3=p1<k1-?p1+:;
double z4=p1>?p1-:k1-;
double z5=p2<k2-?p2+:;
double z6=p2>?p2-:k2-;
if (edge[][z1]==edge[][z2]&&(edge[][z3]+edge[][z5]==edge[][z4]+edge[][z6]||
edge[][z3]+edge[][z6]==edge[][z4]+edge[][z5])) printf ("YES\n");
else printf ("NO\n");
}
else printf ("NO\n");
}
else if (xie1==&&xie2==&&k1==&&k2==) {
for (int i=;i<k1;i++) {
for (int k=;k<k2;k++)
if (edge[][i]==edge[][k]) cnt1++;
}
if (cnt1==||cnt1==) printf ("YES\n");
else printf ("NO\n");
}
else printf ("NO\n");
}
return ;
}

PAT T1011 Cut Rectangles的更多相关文章

  1. PAT 1132 Cut Integer

    1132 Cut Integer (20 分)   Cutting an integer means to cut a K digits lone integer Z into two integer ...

  2. PAT A1132 Cut Integer (20 分)——数学题

    Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long int ...

  3. PAT 1132 Cut Integer[简单]

    1132 Cut Integer(20 分) Cutting an integer means to cut a K digits lone integer Z into two integers o ...

  4. pat 1132 Cut Integer(20 分)

    1132 Cut Integer(20 分) Cutting an integer means to cut a K digits lone integer Z into two integers o ...

  5. PAT (Advanced Level) Practice(更新中)

    Source: PAT (Advanced Level) Practice Reference: [1]胡凡,曾磊.算法笔记[M].机械工业出版社.2016.7 Outline: 基础数据结构: 线性 ...

  6. PAT_A1132#Cut Integer

    Source: PAT A1132 Cut Integer (20 分) Description: Cutting an integer means to cut a K digits lone in ...

  7. PAT 甲级 1132 Cut Integer

    https://pintia.cn/problem-sets/994805342720868352/problems/994805347145859072 Cutting an integer mea ...

  8. PAT甲级——A1132 Cut Integer

    Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long int ...

  9. PAT Advanced 1132 Cut Integer (20) [数学问题-简单数学]

    题目 Cutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long ...

随机推荐

  1. 威佐夫博奕(Wythoff Game)poj 1067

    有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 这种情况下是颇为复杂的.我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…, ...

  2. 吴裕雄 python 机器学习——KNN回归KNeighborsRegressor模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import neighbors, datasets from skle ...

  3. 吴裕雄 python 机器学习——伯努利贝叶斯BernoulliNB模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,naive_bayes from skl ...

  4. snowflake 雪花算法 分布式实现全局id生成

    snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID. 这种方案大致来说是一种以划分命名空间(UUID也算,由于比较常见,所以单独分析)来生成ID的一种算法,这种方案 ...

  5. C#中的switch

    switch 表达式支持的类型为 sbyte.byte.short.ushort.int.uint.long.ulong.char.string 或枚举类型,或者可以隐试转换到这些类型的自定义对象或其 ...

  6. py1

    python 下载安装  https://python.org python解释性语言 python数据结构 *输入输出 print(12,34,56,end='',sep='*') input() ...

  7. 6_12 油田(UVa572)<图的连通块DFS>

    有一家石油公司负责探勘某块地底下的石油含量,这块地是矩行的,并且为了探勘的方便被切割为许多小块.然后使用仪器对每个小块去探勘.含有石油的小块称为一个pocket.假如两个pocket相连,则这两个po ...

  8. 7、Maven插件

    什么是maven插件? maven 实际上是一类依赖插件执行的框架,每个任务实际上是由插件完成,Maven插件通常被用来 创建jar文件 创建war文件 编译代码文件 代码单元测试 创建工程文档 创建 ...

  9. [BPNN]BP神经网络实现

    BP神经网络实现 以3层网络为例,Python实现: 1.代码框架 主要函数: Init函数:设定InputLayer nodes.HiddenLayer nodes.OutputLayer node ...

  10. HDU 1241 Oil Deposits(经典DFS)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 很经典的一道dfs,但是注意每次查到一个@之后,都要把它变成“ * ”,然后继续dfs ...