牛客周赛140F 直角三角形

牛客周赛140F

https://ac.nowcoder.com/acm/contest/132940/F

题目大意

给你一个数字,构造一个边全是整数的直角三角形,我们可以默认这个数字就是直角边,而不是斜边,因为只要构造出来就好了,除了x=1和x=2没有解之外,其他都是有解的,所以没必要难为自己
那么为什么只要是1和2就不可以呢

证明

对于一个三角形,我们可以设定的是

a=n^2-m^2,b=2mn,c=n^2+m^2
a和b是直角边,然后C是斜边
如果x是奇数的话,就设定x是a,因为a可以拆分成n-m和n+m可以假设n-m=1,然后n+m=x,这样n是(x+1)/2,m是(x-1)/2,只有x是奇数的时候,除以2就会有整数的结果,**但是这个不可以是1,如果是1的话,m就是0了,如果m是0,那么b边就是0了**如果x是偶数的时候,就把这个x设定为2*n*m,这个是天然的偶数,然后设定n==1,m==x/2**但是这个偶数不可以是2,如果是2的话,n==m==1,a的长度就是0了**,你可能会问,为什么就定义确定的数字是1呢,因为这个最通用,而且可以实现O(1) 得出答案                                                    
posted @ 2026-04-22 18:30  Time_q  阅读(3)  评论(0)    收藏  举报