链接:https://ac.nowcoder.com/acm/contest/338/K
来源:牛客网

题目描述

Consider the right-angled triangles with sides of integral length.

Give you the integral length of  the hypotenuse of a right-angled triangle.  Can it construct a right triangle with given hypotenuse c such that the two legs of the triangle are all . integral length?

输入描述:

There are several test cases. The first line contains an integer T(1≤T≤1,000), T is the number of test cases.

The following T lines contain T test cases, each line contains one test case. For each test case, there is an integer : c, the length of hypotenuse.(1≤c≤45,000).

输出描述:

For each case, output Yes if it can construct a right triangle with given hypotenuse c and sides of integral length , No otherwise.
示例1

输入

复制

4
5
6
15
13

输出

复制

Yes
No
Yes
Yes 优化一下就可以了 简单题
• 这个题很容易想到的一个思路就是暴力枚举。是 的,我们给的解题方法也是暴力枚举。但是,直 接枚举的复杂度是O(c2),会超时(TLE)。所以我们 需要将问题转化一下,使得枚举的复杂度是O(c)。
• 如果三角形三边满足如下关系,则是直角三角形。
• a=m2-n2
•b=2mn
• c=m2+n2
• 所以如果斜边长度能够表示成2个正整数的平方和,则能使得三
边都是正整数。这样枚举的复杂度是O(c)。
• 另外,如果斜边长度是一个合数,其有一个因子能表示为2个正 整数的平方和,那么也能使得三边都是正整数。比如c=,有因 子5=+,那么也是可以构成三边全是整数的直角三角形,每边 长度乘以3即可。就是(,,)。
标准答案
•#include <stdio.h>
•#define N 45001
• int MK[N]={},SQ[];
• //MK数组标记能否是整数三角形,为0表示不能,非0表示可以,SQ数组记录数的平方值
•int main(){
• for(i=;i<;++i)SQ[i]=i*i;
• for(i=;i<;++i)
• for(j=i+;j<&&(k=SQ[i]+SQ[j])<N;++j)
• MK[k]=; //所有能写成2整数平方和的被标记为能
• for(i=;i<;++i)
• if(MK[i]==)
• for(j=;(k=j*i)<N;++j)
• MK[k]=j; //所有含2整数平方和的因子的正整数被标记为能
• scanf("%d",&t);
•while(t--){
• scanf("%d",&c);
• printf("%s\n",MK[c]?"Yes":"No");}
•return ;}
 
#include<stdio.h>
#include<math.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
int flag = 0;
scanf("%d",&n);
for(int i = 1; i <= 45000&&i!=n; i++)
{
double sum = sqrt(n*n - i*i);
// printf("%lf ",sum);
if(sum - (int)sum < 0.000001)
{ flag = 1;
break;
//printf("YES\n"); }
}
// if(flag==1)
// break; if(flag == 1)
printf("Yes\n");
else
printf("No\n"); }
}
 

K The Right-angled Triangles的更多相关文章

  1. hackerrank Project Euler #210: Obtuse Angled Triangles

    传送门 做出一个好几个星期屯下来的题目的感觉就是一个字: 爽! 上图的黄点部分就是我们需要求的点 两边的部分很好算 求圆的地方有一个优化,由于圆心是整数点,我们可以把圆分为下面几个部分,阴影部分最难算 ...

  2. Count the number of possible triangles

    From: http://www.geeksforgeeks.org/find-number-of-triangles-possible/ Given an unsorted array of pos ...

  3. HZNU ACM一日游 2019.3.17 【2,4,6-三硝基甲苯(TNT)】

    Travel Diary 早上8:00到HG,听说hjc20032003在等我. 然后他竟然鸽我...最后还是勉强在8:30坐上去偏僻的HZNU的地铁. 到文新,然后带上fjl,打滴滴,一行人来到了H ...

  4. 图像数据到网格数据-1——MarchingCubes算法

    原文:http://blog.csdn.net/u013339596/article/details/19167907 概述 之前的博文已经完整的介绍了三维图像数据和三角形网格数据.在实际应用中,利用 ...

  5. unity 读取灰度图生成三维地形并贴图卫星影像

    从 https://earthexplorer.usgs.gov/ 下载高程数据 从谷歌地球上保存对应地区卫星图像 从灰度图创建地形模型,并将卫星影像作为贴图 using System.Collect ...

  6. unity 读取灰度图生成按高程分层设色地形模型

    准备灰度图 1.高程按比例对应hue色相(hsv)生成mesh效果 o.color = float4(hsv2rgb(float3(v.vertex.y/100.0, 0.5, 0.75)), 1.0 ...

  7. unity读取灰度图生成三维地形mesh

    准备灰度图 IGray.png及草地贴图 IGrass.jpg ,放入Assets下StreamingAssets文件夹中.     创建空材质,用作参数传入脚本.   脚本如下,挂载并传入材质球即可 ...

  8. 图像数据到网格数据-2——改进的SMC算法的实现

    概要 本篇接上一篇继续介绍网格生成算法,同时不少内容继承自上篇.上篇介绍了经典的三维图像网格生成算法MarchingCubes,并且基于其思想和三角形表实现了对样例数据的网格构建.本篇继续探讨网格生成 ...

  9. 图像数据到网格数据-1——Marching Cubes算法的一种实现

    概述 之前的博文已经完整的介绍了三维图像数据和三角形网格数据.在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像.比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征 ...

  10. django模型操作

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表        

随机推荐

  1. 微信支付MD5签名算法C#版,ASCII码字典序排序0,A,B,a,b

    /// <summary> /// 微信支付MD5签名算法,ASCII码字典序排序0,A,B,a,b /// </summary> /// <param name=&qu ...

  2. Python + logging输出到屏幕,将log日志写入到文件

    logging提供了一组便利的函数,用来做简单的日志.它们是 debug(). info(). warning(). error() 和 critical(). logging函数根据它们用来跟踪的事 ...

  3. c# tcp 服务客户端

    session connection protobuf-net

  4. 记录一次 Linux crontab 执行django 脚本 失败 的经历和解决办法

    目的是想通过定时任务来执行一次数据统计,本来可以用celery来做,但是想着这个项目整个就没用到异步的地方,所以决定用crontab来做.之前做过数据库的热备份,想来用该没啥问题,但是现实打脸啪啪响. ...

  5. stream benchmark 交叉编译 on psoc

    之前有研究过这个,居然忘记了,看来确实是老了,没有盘过来. 如何下载,见 linux下载网页上的文件夹以及删除文件(stream) 出现了好几个问题 1. error while loading sh ...

  6. ng mvc + @Valid + @RequestBody 接收json同时校验javaBean的数据有效性

    @Valid @RequestBody CustomerDto customerBean @RequestMapping(value="/customerDataSync.do", ...

  7. 如何将word内容粘贴到富文本编辑器里面

    Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧?Chrome高版本提供了可以将单张图片转换在BASE64字符串的功能.但是无法 ...

  8. SSD_mobilenet

    mobilenet_ssd caffe模型可视化地址:MobileNet_ssd conv13是mobilenet的最后一个卷积层,作者仿照VGG-SSD的结构,在MobileNet的conv13后面 ...

  9. 学习日记3、投机取巧使两个表的数据同时在一个treeGrid中显示

    不多说了直接上代码, $('#List').treegrid({ url: '@Url.Action("GetList")', width: $(window).width() - ...

  10. Codeforecs Round #425 D Misha, Grisha and Underground (倍增LCA)

    D. Misha, Grisha and Underground time limit per test 2 seconds memory limit per test 256 megabytes i ...