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

#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. XSS常见攻击与防御

    XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意 ...

  2. Java - Test - TestNG: testng.xml 元素 group

    1. 概述 group 相关的元素 groups run 其他相关(不准备提了) package class include exclude 2. 背景 准备 了解了 class 及其子元素 问题 对 ...

  3. 结构体sizeof()问题与字节对齐

    32位机器上定义如下结构体: struct xx { long long _x1; char _x2; int _x3; char _x4[2]; static int _x5; }; int xx: ...

  4. 连接查询:inner join,left join,right join

    感谢原创:https://blog.csdn.net/plg17/article/details/78758593 准备工作: 1)新建两张表a_table和b_table: create table ...

  5. dbGet net trace instant pin

    proc rn { net_name } {puts " "puts "Net name : $net_name : "set name_rule [dbget ...

  6. 激活windows系统

    1.下载KMS 2.如图所示,双击KMSpico看是否正常运行 3.双击KMSpico正常后出现以下界面 4.点击红色按钮 5.等自动退出就是激活成功,大概半年需要激活一次

  7. eosio 编译与部署

    1. 名词解释 创世节点(BIOS) 用于创建初始区块,加载基础合约,供其它节点同步连接. 矿工节点(BP) 主要用于生产同步区块,计算合约产生的费用归矿工账号所有. 查询节点 不产生区块,同步区块信 ...

  8. 获取自增长的id值

    单个: <insert id="create" parameterType="com.dto.Cou" useGeneratedKeys="tr ...

  9. Android学习05

    AlertDialog(对话框) 它也是其他 Dialog的的父类!比如ProgressDialog,TimePickerDialog等,而AlertDialog的父类是:Dialog! AlertD ...

  10. 【原】python-jenkins信息

    1.官方文档: https://python-jenkins.readthedocs.io/en/latest/examples.html#example-1-get-version-of-jenki ...