Codeforces Round #368 (Div. 2) (勾股数)
来源:互联网 发布:c语言函数头 编辑:程序博客网 时间:2024/05/24 06:05
传送门:Codeforces Round #368 (Div. 2)
题意:给你一条边L,求输出另外两条能与它构成直角三角形的边。如不存在输出-1
(L<=1e9)
思路:
当L为大于1的奇数,令这条边为直角边,则另外两条边为b,c则 ,(c−b)(c+b)=L∗L−>令c−b=1−>c=(L∗L+1)/2
当L为大于2的偶数2∗n时,b=n2−1,c=n2+1
#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;#define INF 1e18#define inf -0x3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define mem0(a) memset(a,0,sizeof(a))#define mem1(a) memset(a,-1,sizeof(a))#define mem(a, b) memset(a, b, sizeof(a))vector<int>tmp;int main(){ long long n; scanf("%lld",&n); if(n==1||n==2) printf("-1\n"); else{ if(n==4){ printf("3 5\n"); return 0; } if(n&1) printf("%lld %lld\n",(n*n+1)/2,(n*n+1)/2-1); else printf("%lld %lld\n",n*n/4-1,n*n/4+1); } return 0;}
0 0
- Codeforces Round #368 (Div. 2) (勾股数)
- Codeforces Round #368 (DIV 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div.2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2)
- 【codeforces】Codeforces Round #368 (Div. 2)
- Codeforces Round #368 (Div. 2) C. Pythagorean Triples (本原勾股数)
- Codeforces Round #368 (Div. 2) C
- Codeforces Round #368 (Div. 2) Bakery
- Codeforces Round #368 (Div. 2) A~D
- 初识Hibernate
- 网址收藏
- 初步认识注解,用反射来读取自定义注解
- android webview 硬件加速 view渲染问题
- Docker cpu限制分析
- Codeforces Round #368 (Div. 2) (勾股数)
- Windows远程桌面连接时出错,重启还是不行的处理方法。
- meta name="viewport" content="width=device-width,initial-scale=1.0" 解释
- C++ Primer Plus 之 输入、输出和文件
- MFC Edit控件 error:“DDX_Control”: 不能将参数 3 从“int”转换为“CWnd &”
- 根据前台设计数据库--产品展示页
- V第七章 字符串
- 抓包获取百度音乐API
- Codeforces Round #336 (Div. 2)C. Chain Reaction