模拟。

先判断三边形和四边形的个数。

然后判断$5$个三角形是否都是等腰直角三角形。

然后判断$5$个等腰直角三角形比例是否符合要求。

然后寻找正方形。判断比例是否符合要求。

最后判断四边形是否符合要求。

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;struct X
{int n;double x[5],y[5];double len[5];
}s[10];double eps = 1e-4;bool cmp(X a, X b)
{return a.n<b.n;
}bool cmp1(X a, X b)
{return a.len[3]<b.len[3];
}double dis(double p1x,double p1y,double p2x,double p2y)
{return sqrt((p1x-p2x)*(p1x-p2x)+(p1y-p2y)*(p1y-p2y));
}int main()
{for(int i=1;i<=7;i++){scanf("%d",&s[i].n);for(int j=1;j<=s[i].n;j++) scanf("%lf%lf",&s[i].x[j],&s[i].y[j]);}sort(s+1,s+1+7,cmp);int sum3 = 0, sum4 = 0;for(int i=1;i<=7;i++){if(s[i].n == 3) sum3++;if(s[i].n == 4) sum4++;}if(sum3 != 5){printf("NO\n");return 0;}if(sum4 != 2){printf("NO\n");return 0;}for(int i=1;i<=7;i++){for(int j=1;j<=s[i].n;j++){int L = j;int R = j+1;if(R == s[i].n + 1) R = 1;s[i].len[j] = dis(s[i].x[L],s[i].y[L],s[i].x[R],s[i].y[R]);}}for(int i=1;i<=7;i++) sort(s[i].len+1,s[i].len+1+s[i].n);//判断三角形是否均为等腰直角for(int i=1;i<=5;i++){if(abs(s[i].len[1]-s[i].len[2])>eps) {printf("NO\n");return 0;}if(abs(s[i].len[3] - sqrt(2.0) * s[i].len[2])>eps){printf("NO\n");return 0;}}//判断5个三角形比例是否符合要求sort(s+1,s+1+5,cmp1);if(abs(s[1].len[3]-s[2].len[3])>eps){printf("NO\n");return 0;}if(abs(s[2].len[3] * sqrt(2.0) - s[3].len[3])>eps){printf("NO\n");return 0;}if(abs(s[3].len[3] * sqrt(2.0) - s[4].len[3])>eps){printf("NO\n");return 0;}if(abs(s[5].len[3] - s[4].len[3])>eps){printf("NO\n");return 0;}//寻找哪个可能是正方形int f=0,g;for(int i=6;i<=7;i++)if(abs(s[i].len[4] - s[i].len[1])<eps) f=i;if(f==0){printf("NO\n");return 0;}else if(f == 6) g = 7;else g = 6;//判断正方形double Len = dis(s[f].x[1],s[f].y[1],s[f].x[3],s[f].y[3]);if(abs(s[f].len[1] * sqrt(2.0) - Len)>eps){printf("NO\n");return 0;}if(abs(s[1].len[1] - s[f].len[1])>eps){printf("NO\n");return 0;}//判断四边形if(abs(s[g].len[1] - s[g].len[2])>eps){printf("NO\n");return 0;}if(abs(s[g].len[3] - s[g].len[4])>eps){printf("NO\n");return 0;}if(abs(s[g].len[2] * sqrt(2.0) - s[g].len[3])>eps){printf("NO\n");return 0;}double pp,qq;pp = dis(s[g].x[1],s[g].y[1],s[g].x[3],s[g].y[3]);qq = dis(s[g].x[2],s[g].y[2],s[g].x[4],s[g].y[4]);Len = min(pp,qq);if(abs(Len - s[f].len[1])>eps){printf("NO\n");return 0;}printf("YES\n");return 0;
}

转载于:https://www.cnblogs.com/zufezzt/p/6852867.html

EOJ 3265 七巧板相关推荐

  1. 2020 蓝桥杯大学 B 组省赛模拟赛(一) C. 结果填空:七巧板

    文章目录 1.题目: 2.解法: 3.此题分析: 4.代码实例: 1.题目: 求问在以下图案的大三角形内部添加五条直线最多可以将大三角形分成多少个区域. 例如下图一共有 7 个区域. 请在下图的基础上 ...

  2. python关于七巧板的代码_Css打造一个简单的静态七巧板

    偶然在微博上看到用css写一个七巧板,正好也有一些源代码,于是就试着敲了敲. 主要是利用了css3的transform,实现平移,旋转,变形,直接用看到的代码敲出来之后有些问题,因为宽度上下面绿色的三 ...

  3. EOJ Monthly 2019.11 E. 数学题(反演 + 杜教筛 + 拉格朗日插值)

    EOJ Monthly 2019.11 ∑i=1n∑a1=1i∑a2=1i∑a3=1i⋯∑ak−1i∑aki[gcd(a1,a2,a3,-,ak−1,ak,i)==1]=∑i=1n∑d∣iμ(d)⌊i ...

  4. python七巧板三角形_用七巧板拼出14种三角形,这才是图形认知的神器!

    原标题:用七巧板拼出14种三角形,这才是图形认知的神器! 随着幼升小越来越注重孩子的图形认知能力,很多名校幼升小都选择了七巧板作为考验孩子的题目! 比如北京实验二小09年的幼升小考题中,就有一道&qu ...

  5. 【Java】七巧板着色问题

    五颜六色的七巧板: 我们能不能用不超过4种的颜色对七巧板着色而使得相邻带板块颜色不同? 这里不是share图论的文章,所以图的着色.四色定理等就不提了. 直接摆结论:对任意平面图至少存在一种4种涂色方 ...

  6. 用python七巧板模型拼图形_用七巧板拼图形

    课题 用七巧板拼图形 教学目标 1 .知识技能:在用七巧板拼三角形的过程中,进一步加深学生对三角形.长 方形.正方形.平行四边形这些平面图形特征的认识. 2 .数学思考:有目的.有计划地培养学生的审题 ...

  7. python七巧板代码_canvas绘制七巧板

    在上一节中,我们了解了如何使用canvas绘制线段,这一节,我们使用canvas绘制七巧板. html代码如下所示,和第一节中代码一致: Canvas绘制七巧板 #canvas{ border: 1p ...

  8. 文章分享-七巧板拼凸多边形-PAUL SCOTT tangrams

    老师让我们整一个七巧板的project,这里分享一篇七巧板拼凸多边形的文章,仅数学层面无代码实现部分. 附上原文:The Australian Mathematics Teacher vol. 62 ...

  9. 写了一个svg七巧板拼图的小东西

    写了一个svg七巧板拼图的小东西,可以拖动移动,改变颜色边框,旋转角度,然后保存图片. 保存图片用到的html2canvas.js和canvg.js,canvg用来将svg转换成canvas,html ...

最新文章

  1. java调用项目中的文件_详解eclipse项目中.classpath文件的使用
  2. ElasticSearch 6.0.0 IK分词 Kibana 6.0.0
  3. SS CMS 全新跨平台 V7.0 版本正式发布
  4. Handler sendMessage 与 obtainMessage (sendToTarget)比较
  5. 洛谷【数据结构1-1】线性表
  6. ubutu虚拟机和主机共享同一网络
  7. 【到世界的尽头win7主题】
  8. pert计算公式期望值_PERT网络分析法
  9. Ubuntu16.04 微信网页版安装
  10. python信用卡管理源码_Python随机生成信用卡卡号的实现方法
  11. 16进制是否能整除 求余的运算
  12. NuPlayer源码分析三:解码模块
  13. 用C语言写一个数字版的3阶魔方
  14. 软件开发七宗罪(转)
  15. 浅谈5G通信面临的电磁兼容挑战及解决方法
  16. javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? HTTPS请求异常
  17. 史上最简单的springcloud微服务入门实例,满足企业日常需求,开箱即用,工资翻倍不是梦...
  18. 数据仓库十大主题;TeraData金融数据模型
  19. Spring框架——基于xml文件的相关配置
  20. 核芯国产最强锁相环PLL

热门文章

  1. 升级联想E450(加内存条换固态重装系统win10)
  2. 关于elementui上传图片 隐藏上传按钮
  3. 计算机自带录音机格式,Windows自带录音机
  4. 系统业务逻辑书籍_企业应该如何建立自己的分销系统和分销团队
  5. 2019年—BAT大型互联网企业刚出炉的一套面试题(Java岗)
  6. python反爬虫应对之借助平台超级鹰突破网页验证码识别
  7. [codeforces1139C]Edgy Trees
  8. cannot find -lxxx问题
  9. 什么是oracle 匿名块,Oracle PL/SQL匿名块
  10. html的css雪花动效,《前端每日实战》第171号作品:用纯 CSS 绘制一朵美丽的雪花...