(HDU6441)2018中国大学生程序设计竞赛 - 网络选拔赛 - 1004 - Find Integer - (费马大定理+勾股数)

本文主要是介绍(HDU6441)2018中国大学生程序设计竞赛 - 网络选拔赛 - 1004 - Find Integer - (费马大定理+勾股数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6441

 

题意:T组样例,每组给出两个整数n,a,求出两个整数b,c满足:a^n+b^n=c^n;能找到b,c就输出,否则输出-1,-1。(1 ≤ T ≤ 1000000) (0 ≤ n ≤ 1000 000 000, 3 ≤ a ≤ 40000) (1 ≤ b, c ≤ 1000 000 000)。

解析

①.很明显当n=0时无解;

②.当n=1时有a+b=c,那么随便取满足公式的b,c即可;

③.而由费马大定理知对于方程a^n+b^n=c^n当n>2时无解;

④.那么我们只需求一下n=2时方程a^2+b^2=c^2的解即可,题解上说用“费马大定理奇偶数列法则”,这里看到公式a^2+b^2=c^2的形式,想到用勾股数相关性质来解:

  •         对于a^2+b^2=c^2,有如下套路:
  •         1.当a为大于1的奇数2x+1时,b=2*x^2+2*x, c=2*x^2+2*x+1。
  •         2.当a为大于4的偶数2x时,b=x^2-1, c=x^2+1。

资料

  • 费马大定理:https://baike.baidu.com/item/%E8%B4%B9%E9%A9%AC%E5%A4%A7%E5%AE%9A%E7%90%86/80363?fr=aladdin
  • 勾股数:https://baike.baidu.com/item/%E5%8B%BE%E8%82%A1%E6%95%B0/2674064

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MAXN=1000000000;int n,a,b,c;int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&a);if(n==1){b=a;c=a*2;printf("%d %d\n",b,c);//printf("%d %d\n",1,a+1);}else if(n==2){int tn;if(a&1){tn=(a-1)/2;b=2*tn*tn+2*tn;c=2*tn*tn+2*tn+1;}else{tn=a/2;b=tn*tn-1;c=tn*tn+1;}printf("%d %d\n",b,c);}else{printf("%d %d\n",-1,-1);}}return 0;
}

 

 

这篇关于(HDU6441)2018中国大学生程序设计竞赛 - 网络选拔赛 - 1004 - Find Integer - (费马大定理+勾股数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/359589

相关文章

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技峰会给业界传递了6大重要信号。不妨简单聊聊:从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展? 1)退出中国的谣言不攻自破。 之前有不良媒体宣扬戴尔将退出中国的谣言,随着2

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo