hdu2281&&POJ1320——Pell方程
hdu2281
输入一个 $N$,求最大的 $n$($n \leq N$)和 $x$,使得 $x^2 = \frac{1^2+2^2+...+n^2}{n}$.
分析:
将右边式子的分子求和化简,有:$x^2 = \frac{(n+1)(2n+1)}{6}$.
变换成:$(4n+3)^2-48x^2 = 1$.
这就是佩尔方程的形式,且样例给出了最小整数解(7, 1)。
求出long long范围内的所有解(也就9个)
#include<bits/stdc++.h>
using namespace std; typedef long long ll;
ll n;
vector<ll>nn, xx; void init()
{
ll pre_x = , pre_y = ;
nn.push_back(), xx.push_back();
for(int i;;i++)
{
ll tmpx = pre_x* + pre_y**;
ll tmpy = pre_x* + pre_y*;
if(tmpx < ) break;
if((tmpx-)% == )
{
nn.push_back((tmpx-)/);
xx.push_back(tmpy);
}
pre_x = tmpx; pre_y = tmpy;
}
nn.push_back((ll)1e18+); //设置一个边界
} int main()
{
init();
//printf("%d\n", nn.size());
while(scanf("%lld", &n) == && n)
{
for(int i = ;i < nn.size();i++)
{
if(n < nn[i])
{
printf("%lld %lld\n", nn[i-], xx[i-]);
break;
}
}
}
}
POJ 1320
题意:有 m 个编号从 1 到 m 的房子,问是否存在 1+2+3+...+ (N-1)=(N+1)+(N+2)+...+(M),求出前 10 个 n、m
分析:
将左右两端的等差数列求和,有:$(2m+1)^2-8n^2=1$
易知佩尔方程 $x^2-8y^2=1$ 的最小解为 (3, 1),按递推式可求出其他的解。
#include<cstdio>
using namespace std; int main()
{
int x = , y = ;
for(int i = ;i < ;i++)
{
int tmpx = x* + y**;
int tmpy = x* + y*;
printf("%10d%10d\n", tmpy, (tmpx-)/); //易知tmpx一定是奇数,所以不必判断
x = tmpx, y = tmpy;
}
return ;
}
参考链接:
1. https://blog.csdn.net/u011815404/article/details/88723480
2. https://blog.csdn.net/u011815404/article/details/88723187
hdu2281&&POJ1320——Pell方程的更多相关文章
- Pell方程及其一般形式
一.Pell方程 形如x^2-dy^2=1的不定方程叫做Pell方程,其中d为正整数,则易得当d是完全平方数的时候这方程无正整数解,所以下面讨论d不是完全平方数的情况. 设Pell方程的最小正整数解为 ...
- hdu3293(pell方程+快速幂)
裸的pell方程. 然后加个快速幂. No more tricks, Mr Nanguo Time Limit: 3000/1000 MS (Java/Others) Memory Limit: ...
- HDU 2281 Square Number Pell方程
http://acm.hdu.edu.cn/showproblem.php?pid=2281 又是一道Pell方程 化简构造以后的Pell方程为 求出其前15个解,但这些解不一定满足等式,判断后只有5 ...
- POJ 1320 Street Numbers Pell方程
http://poj.org/problem?id=1320 题意很简单,有序列 1,2,3...(a-1),a,(a+1)...b 要使以a为分界的 前缀和 和 后缀和 相等 求a,b 因为序列很 ...
- POJ 2427 Smith's Problem Pell方程
题目链接 : http://poj.org/problem?id=2427 PELL方程几个学习的网址: http://mathworld.wolfram.com/PellEquation.html ...
- HDU 6222 Heron and His Triangle (pell 方程)
题面(本人翻译) A triangle is a Heron's triangle if it satisfies that the side lengths of it are consecutiv ...
- SPOJ 1739 Yet Another Equation(Pell方程)
题目链接:http://www.spoj.com/problems/EQU2/ 题意:给出方程x^2-n*y^2=1的最小整数解. 思路:参见金斌大牛的论文<欧几里得算法的应用>. imp ...
- Pell方程(求形如x*x-d*y*y=1的通解。)
佩尔方程x*x-d*y*y=1,当d不为完全平方数时,有无数个解,并且知道一个解可以推其他解. 如果d为完全平方数时,可知佩尔方程无解. 假设(x0,y0)是最小正整数解. 则: xn=xn-1*x0 ...
- [NBUT 1224 Happiness Hotel 佩尔方程最小正整数解]连分数法解Pell方程
题意:求方程x2-Dy2=1的最小正整数解 思路:用连分数法解佩尔方程,关键是找出√d的连分数表示的循环节.具体过程参见:http://m.blog.csdn.net/blog/wh2124335/8 ...
随机推荐
- 推荐一款语音直播连麦App YAMI
推荐一款语音直播连麦App YAMI 1 介绍 功能描述:[语音直播]:海量超有才主播,游戏送礼抢红包,嗨玩不停:[多人聊天室]:连麦交友处CP,主持人带你玩游戏,边聊边玩:[语音交友]:海量声优专属 ...
- html5 video获取实时播放进度的方法
getvideoprogress(); function getvideoprogress() { setTimeout(function () { var vid = document.getEle ...
- linux shell根据端口返回进程号杀死进程的方法
linux shell根据端口返回进程号杀死进程的方法<pre>kill `lsof -t -i:9501`</pre>这个就是杀死9501端口的进程号
- DirectX:Vector
Tag DirectX下的博客主要用于记录DirectX的学习过程,主要参考<DirectX 12 3D 游戏实战开发>. Vector in DirectX Shader的编写离不开数学 ...
- nginx 的一些优化(突破十万并发)
一般来说 nginx 配置文件中对优化比较有作用的为以下几项: worker_processes 8; nginx 进程数,建议按照 cpu 数目来指定,一般为它的倍数. worker_cpu_aff ...
- .net core - 配置管理 - json文件配置
Json 文件配置 public class Startup { public Startup(IHostingEnvironment env) { var builder = new Configu ...
- Python 查看模块的帮助文档,方法和帮助信息
参考链接:https://blog.csdn.net/u013810296/article/details/55509284 这里介绍下python自带的查看帮助功能,可以在编程时不中断地迅速找到所需 ...
- 微信页面script标签添加crossorigin=“anonymous”导致页面加载失败
公司一个微信企业号项目,突然出现页面数据加载失败,页面报错信息如下 意思是前端向服务端发送跨域资源请求访问这个js文件,但是服务端并不同意,所以服务端拒绝访问这个地址. 后来发现将crossorigi ...
- SpringBoot 整合MyBatis 统一配置bean的别名
所谓别名, 就是在mappper.xml配置文件中像什么resultType="xxx" 不需要写全限定类名, 只需要写类名即可. 配置方式有两种: 1. 在 applicatio ...
- 基于vue+springboot+docker网站搭建【五】部署vue前端项目
部署vue前端项目 一.下载项目到本地 https://github.com/macrozheng/mall-admin-web 二.npm install 三.修改api配置,改为你接下来要部 ...