【2018-CCPC青岛网赛】 HDU - 6441 Find Integer

源链接: HDU - 6441

文源 :Blog

题意

已知等式,a^n + b ^ n = c ^ n,题目中给出 an 的数值,求问满足等式的 bc 的数值,不存在输出 -1

思路

题意很明朗,这个题目的话,考的是 费马大定理勾股数
参考链接:维基百科-费马大定理 和 勾股数-百度文库 ,基本就是详细题解了。

费马大定理 :就是对于 n > 2 的时候,给出的等式永不成立

如此一来,这个题目就只需要判断勾股数了,其实还注意到,对于题中给出的条件,勾股数一定存在,那么就利用 公式,计算一下勾股数输出就好

公式

当 a 是奇数的时候,有勾股数如下,其中令2n+1 = a,得到a是第n组勾股数的勾

2*n+12*n*n+2*n2*n*n+2*n+1

当 a 是偶数的时候,有勾股数如下,

2*(n+1)n*n+2*nn*n+2*n+2

AC代码

不知道为什么之后补题的时候提交为啥各种错误,但是当时比赛AC了确实(莫名想起了苹果的五国问题)

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <vector>
#include <functional>
#include <utility>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <climits>
typedef unsigned long long ll;
#define eps 60000 + 100
#define rll register ll
using namespace std;int main(int argc, char const *argv[])
{std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);register ll T, a, n;scanf("%lld", &T);while (T--) {scanf("%lld %lld", &n, &a);if (!n || n > 2) {printf("-1 -1\n");}else {if (n == 1) {printf("1 %lld\n", (ll)(a + 1));}else {if (a & 1) {rll nn = (a - 1) / 2;printf("%lld %lld\n", ll(2 * (nn * nn + nn)), ll(2 * nn * nn + 2 * nn + 1));}else {rll nn = a / 2 - 1;printf("%lld %lld\n", ll(nn * nn + 2 * nn), ll(nn * nn + 2 * nn + 2));}}}}return 0;
}

【2018-CCPC青岛网赛】 HDU - 6441 Find Integer相关推荐

  1. HDU 6441 Find Integer 【费马大定理】

    传送门:HDU 6441 Find Integer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...

  2. hdu.6441 Find Integer

    hdu.6441 Find Integer 思路:费马大定理+勾股定理. 费马大定理内容:an+bn=cn,(n>2)a^n+b^n=c^n,(n>2)an+bn=cn,(n>2)时 ...

  3. 2018 ACM-ICPC青岛现场赛 B题 Kawa Exam 题解 ZOJ 4059

    题意: BaoBao正在进行在线考试(都是选择题),每个题都有唯一的一个正确答案,但是考试系统有m个bug(就是有m个限制),每个bug表示为第u个问题和第v个问题你必须选择相同的选项,题目问你,如果 ...

  4. 2018宁夏邀请赛网赛 G.Trouble of Tyrant(单调栈)

    题意: 有n个点,2n-3条边的图.点 1 到每个点有一条边,编号相邻的两个点有一条边.q次询问,每次询问一个增量d,问图中每条边都增加 d 后,1 到 n 的最短路是多少.增量独立,不累加. 1 & ...

  5. HDU 6441 Find Integer

    题目传送门 代码: #include<bits/stdc++.h> using namespace std;int main(){int T;scanf("%d",&a ...

  6. HDU 6441 Find Integer(数论)

    Description 给出n,an,an,a,求一组b,cb,cb,c使得an+bn=cna^n+b^n=c^nan+bn=cn Input 第一行一整数TTT表示用例组数,每组用例输入两个整数n, ...

  7. HDU 6441 Find Integer(费马大定理)

    people in USSS love math very much, and there is a famous math problem . give you two integers n,a,y ...

  8. 2018团体程序设计天梯赛 软件学院选拔赛

    2018团体程序设计天梯赛 软件学院选拔赛 被你们虐了一下午的OJ是很辛苦的,让我们来看看题解吧. L1-01 微妙的平衡 题目描述: 平衡是一种很微妙的状态.施加在一个物体上各种力,在什么情况下会使 ...

  9. 2018冬令营模拟测试赛(十八)

    2018冬令营模拟测试赛(十八) [Problem A]Table 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述&qu ...

最新文章

  1. 针对七牛含有特殊字符的文件名,对特殊字符编码处理
  2. 17._5正则表达式的替换
  3. python状态机实现_如何实现Python状态机设计?
  4. spring配置详解-模块化配置
  5. JDK的OutputStream为什么方法write(int b)的入参类型是int呢?
  6. 扫地机器人的特点描写_描写扫地机器人五年级作文500字
  7. 云南省行政村谷歌图层_云南省基本农田划定工作实施细则
  8. 组件通信-父组件为子组件传递数据-静态数据//动态数据 // 数据校验
  9. 10分钟学会python函数式编程
  10. Postgresql 直接在查询结果中生成唯一ID
  11. python是干嘛的-python语言是干什么的
  12. Vicdas实时历史数据库
  13. 萤火虫算法matlab实现,智能算法萤火虫算法Matlab源代码
  14. 二进制编辑器BZ-1621网址
  15. Google 另类技巧不完全手册
  16. c语言gets,getc,区分C语言中fgetc、getc、getchar、fgets、gets
  17. ThinkPad笔记本如何重装系统
  18. 逆矩阵的六个注意事项
  19. IWAM账号密码不一致引起IIS无法处理ASP文件
  20. Android实现视频播放的3种实现方式

热门文章

  1. linux mysql changed limits_ubuntu下mysql提示Changed limits: max_open_files:1024解决办法
  2. echarts将x轴展示在图标上方
  3. CAD教程:CAD软件中怎么将图块改层?
  4. 重采样 上采样 下采样
  5. 区别:αβ^T、βα^T、αα^T、(Aα)(Aα)^T、β^Tα、α^Tβ、α^Tα、(Aα)^T(Aα)
  6. xxlJob定时任务,文章的上下架
  7. SpringCache报错解决
  8. 正则表达式:特殊字符之“-”(减号)
  9. window10 电脑总是会从睡眠模式中自动唤醒
  10. 计算机中的正数,负数到底是什么?