【2018-CCPC青岛网赛】 HDU - 6441 Find Integer
【2018-CCPC青岛网赛】 HDU - 6441 Find Integer
源链接: HDU - 6441
文源 :Blog
题意
已知等式,a^n + b ^ n = c ^ n
,题目中给出 a
和 n
的数值,求问满足等式的 b
和 c
的数值,不存在输出 -1
思路
题意很明朗,这个题目的话,考的是 费马大定理
和 勾股数
参考链接:维基百科-费马大定理 和 勾股数-百度文库 ,基本就是详细题解了。
费马大定理 :就是对于 n > 2 的时候,给出的等式永不成立
如此一来,这个题目就只需要判断勾股数了,其实还注意到,对于题中给出的条件,勾股数一定存在,那么就利用 公式,计算一下勾股数输出就好
公式
当 a 是奇数的时候,有勾股数如下,其中令2n+1 = a,得到a是第n组勾股数的勾
2*n+1
、2*n*n+2*n
、2*n*n+2*n+1
当 a 是偶数的时候,有勾股数如下,
2*(n+1)
、n*n+2*n
、n*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相关推荐
- HDU 6441 Find Integer 【费马大定理】
传送门:HDU 6441 Find Integer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- 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)时 ...
- 2018 ACM-ICPC青岛现场赛 B题 Kawa Exam 题解 ZOJ 4059
题意: BaoBao正在进行在线考试(都是选择题),每个题都有唯一的一个正确答案,但是考试系统有m个bug(就是有m个限制),每个bug表示为第u个问题和第v个问题你必须选择相同的选项,题目问你,如果 ...
- 2018宁夏邀请赛网赛 G.Trouble of Tyrant(单调栈)
题意: 有n个点,2n-3条边的图.点 1 到每个点有一条边,编号相邻的两个点有一条边.q次询问,每次询问一个增量d,问图中每条边都增加 d 后,1 到 n 的最短路是多少.增量独立,不累加. 1 & ...
- HDU 6441 Find Integer
题目传送门 代码: #include<bits/stdc++.h> using namespace std;int main(){int T;scanf("%d",&a ...
- 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, ...
- 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 ...
- 2018团体程序设计天梯赛 软件学院选拔赛
2018团体程序设计天梯赛 软件学院选拔赛 被你们虐了一下午的OJ是很辛苦的,让我们来看看题解吧. L1-01 微妙的平衡 题目描述: 平衡是一种很微妙的状态.施加在一个物体上各种力,在什么情况下会使 ...
- 2018冬令营模拟测试赛(十八)
2018冬令营模拟测试赛(十八) [Problem A]Table 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述&qu ...
最新文章
- 针对七牛含有特殊字符的文件名,对特殊字符编码处理
- 17._5正则表达式的替换
- python状态机实现_如何实现Python状态机设计?
- spring配置详解-模块化配置
- JDK的OutputStream为什么方法write(int b)的入参类型是int呢?
- 扫地机器人的特点描写_描写扫地机器人五年级作文500字
- 云南省行政村谷歌图层_云南省基本农田划定工作实施细则
- 组件通信-父组件为子组件传递数据-静态数据//动态数据 // 数据校验
- 10分钟学会python函数式编程
- Postgresql 直接在查询结果中生成唯一ID
- python是干嘛的-python语言是干什么的
- Vicdas实时历史数据库
- 萤火虫算法matlab实现,智能算法萤火虫算法Matlab源代码
- 二进制编辑器BZ-1621网址
- Google 另类技巧不完全手册
- c语言gets,getc,区分C语言中fgetc、getc、getchar、fgets、gets
- ThinkPad笔记本如何重装系统
- 逆矩阵的六个注意事项
- IWAM账号密码不一致引起IIS无法处理ASP文件
- Android实现视频播放的3种实现方式
热门文章
- linux mysql changed limits_ubuntu下mysql提示Changed limits: max_open_files:1024解决办法
- echarts将x轴展示在图标上方
- CAD教程:CAD软件中怎么将图块改层?
- 重采样 上采样 下采样
- 区别:αβ^T、βα^T、αα^T、(Aα)(Aα)^T、β^Tα、α^Tβ、α^Tα、(Aα)^T(Aα)
- xxlJob定时任务,文章的上下架
- SpringCache报错解决
- 正则表达式:特殊字符之“-”(减号)
- window10 电脑总是会从睡眠模式中自动唤醒
- 计算机中的正数,负数到底是什么?