vijosP1543 极值问题

链接:https://vijos.org/p/1543

【题解】(网上)

从简单情况人手:
    
设定m1,将m代人方程(n2-n-1)2=1,可求出n=1
         m
2,代人,有(n2-2n-4)2=1,可求出n=3
         m
3,代人,有(n2-3n-9)2=1,可求出n=5
         m
4,代人,有(n2-4n-16)2=1,可知无整数解;
         m
5,代人,有(n2-5n-25)2=1,可求出n=8
    
将满足条件的mn排列在一起,有:1 2 3 5 8…
    
看到上述数列,熟悉Fibonacci数列的应该有些面熟,于是就可以猜测,mn是否为Fibonacci数列中相邻的两项,提出这样的猜想之后,就可以再次设定m=8,可求出n正好等于13,可见猜想成立。提出猜想之后,就应该想办法证明这一猜想。事实上,对条件的等式进行一些数学变换:
    (n2-mn-m2)2=[-(n+m)2+2n2+mn]2=[(n+m)2-n(n+m)-n2]2 =[(n‘)2-m‘n‘-(m‘)2]2
    
其中:n‘=m+nm‘=n
    
由上述数学变换可以得出,若mn为满足条件的一组解,则m‘n‘也是满足条件的一组解。通过上述证明可知,mn的确是满足Fibonacci数列的相邻两项,即猜想得以证明。再加上题设中要求使得m2+n2的值最大的条件,可知问题的解即为Fibonacci数列中小于k的最大两个相邻数。
    
由此可见,上述例题的求解方法正是归纳策略一般所要求的三个步骤:从简单情况人手、寻找规律、提出猜想和验证猜想。

【代码】

  

 1 #include<iostream>
 2 using namespace std;
 3
 4 int main() {
 5     long long k,f1,f2,f3,tmp,ans;
 6     cin>>k;
 7     f1=1; f2=1; f3=2;
 8     while(f3<=k) {
 9         tmp=f2+f3;
10         f1=f2; f2=f3;
11         f3=tmp;
12     }
13     cout<<(long long)(f2*f2+f1*f1);
14     return 0;
15 }
时间: 2024-08-07 14:45:30

vijosP1543 极值问题的相关文章

极值问题

题目: 已知m.n为整数,且满足下列两个条件: ① m.n∈1,2,...,K,(1≤K≤10^9) ② (n^ 2-mn-m^2)^2=1 编一程序,对给定K,求一组满足上述两个条件的m.n,并且使m^2+n^2的值最大.例如,若K=1995,则m=987,n=1597,则m.n满足条件,且可使m^2+n^2的值最大. 输入 输入仅一行,K的值. 输出 输出仅一行,m^2+n^2的值. 样例输入 1995 样例输出 3524578 题目字数不多,但是条件2看起来貌似有点复杂,但实际上,它也是个

vijos - P1543极值问题(斐波那契数列 + 公式推导 + python)

P1543极值问题 Accepted 标签:[显示标签] 背景 小铭的数学之旅2. 描述 已知m.n为整数,且满足下列两个条件: ① m.n∈1,2,-,K ② (n^ 2-mn-m^2)^2=1 编一程序,对给定K,求一组满足上述两个条件的m.n,并且使m^2+n^2的值最大.例如,若K=1995,则m=987,n=1597,则m.n满足条件,且可使m^2+n^2的值最大. 格式 输入格式 输入仅一行,K的值. 输出格式 输出仅一行,m^2+n^2的值. 样例1 样例输入1[复制] 1995

【递推与递归】极值问题

[递推与递归]极值问题 题目描述 已知m.n为整数,且满足下列两个条件: (1)m.n∈1,2,3,……,k,即1≤m,n≤k (2)(n2-mn-m2)2=1 你的任务是:编程由键盘输入正整数k(1≤k≤109),求一组满足上述两个条件的m.n,并且使m2+n2的值最大. 输入 一个正整数k 输出 按照格式输出对应的m和n的值 样例输入 1995 样例输出 m=987 n=1597 分析:斐波那契数(可归纳证明)代码: #include <iostream> #include <cst

多元函数求极值问题

今天来讨论多元函数求极值问题,在Logistic回归用牛顿迭代法求参数会用到,所以很有必要把它研究清楚. 回想一下,一元函数求极值问题我们是怎样做的?比如对于凹函数,先求一阶导数,得, 由于极值处导数一定为零,但是导数等于零的点不一定就有极值,比如.所以还需要进一步判断,对 函数继续求二阶导得到,因为在驻点处二阶导数成立,所以 在处取得极小值,二阶导数在这里的意义就是判断函数局部的凹凸性. 在多元函数中求极值的方法类似,只是在判断凹凸性这里引入了一个矩阵,叫做Hessian矩阵. 如果实值多元函

递推第3题—极值问题

[问题描述]已知m,n为整数,且满足下列两个条件:                 ①m,n∈{1,2,…,k},即1<=m,n<=k ②(n2-mn-m2)2=1 你的任务是:编程由键盘输入正整数k(1<=k<=109),求一组满足上述两个条件的m,n,并且使m2+n2的值最大.例如,我们从键盘输入k=1995,则输出m=987,n=1597. [问题分析] 典型的数学题……我们可以就条件②出发利用求根公式加上限制条件去解方程,一定能得到正确的解,但是数据范围是109,这种方法只

【极值问题】【CF1063B】 Labyrinth

传送门 Description 给你一个\(n~\times~m\)的矩阵,一开始你在第\(r\)行第\(c\)列.你的上下移动不受限制,向左最多移动\(x\)次,向右最多移动\(y\)次.求你最多能到多少个点.包括起始点. Input 第一行是\(n\)和\(m\),代表矩阵规模. 第二行是\(r\)和\(c\),代表你的位置 第三行是\(x\)和\(y\),代表移动限制 下面\(n\)行每行\(m\)个字符,有且仅有'.'和''两种.如果第\(i\)行第\(j\)列是''代表你不能经过这个点

E - Rebuild UVALive - 7187 (二次函数极值问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5531 Problem Description Archaeologists find ruins of Ancient ACM Civilization, and they want to rebuild it. The ruins form a closed path on an x-y plane, which has n endpoints. The endpoints locate on (

Codeforces Round #118 (Div. 1) A Mushroom Scientists (多元函数极值问题+拉格朗日乘数法)

Codeforces Round #118 (Div. 1) A Mushroom Scientists 题意:提炼出来就是求f(x,y,z)=x^a*y^b*z^b,这个三元函数在(0 思路: 更严格的还要证明在边界所取到的值比极值要小. 注意:%.10lf注意看题目的output AC代码: #include int main(){ int s; ... meilijie.com/ask/view/377116/ meilijie.com/ask/view/377668/ meilijie.

【vijos】1543 极值问题(数论+fib数)

https://vijos.org/p/1543 好神奇的一题.. 首先我竟然忘记n可以求根求出来,sad. 然后我打了表也发现n和m是fib数.. 严格证明(鬼知道为什么这样就能对啊,能代换怎么就能保证最大呢?): (n^2-mn-m^2)^2=1 (m^2+mn-n^2)^2=1 (m(m+n)-n^2)^2=1 ((m+n-n)(m+n)-n^2)^2=1 ((m+n)^2-n(m+n)-n^2)^2=1 因为(n'^2-m'n'-m'^2)^2=1 取n'=m+n, m'=n使式子成立.