51nod1126 求递推序列的第N项
求递推序列的第N项
Input输入3个数:A,B,N。数字之间用空格分割。(-10000 <= A, B <= 10000, 1 <= N <= 10^9)
Output输出f(n)的值。
Sample Input
3 -1 5
Sample Output
6
原来想直接暴力 后来发现n是1e9 内存显然不够 显然不能暴力。
用AB代进去想看看是不是能找到什么规律推出一个什么公式来 发现好像也不行
查了题解发现其实大有玄机。
因为每次f都要%7,所以f【n】只能是0-6的数,当然f【n-1】和f【n-2】也是
所以f的值最多只可能有7*7=49种可能 会循环起来【原因似懂非懂】
最开始一直错 是因为没发现负数的取余 他要求要非负【虽然题目好像没说?】
结果反正要先取模再加7
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <cstring>
#include <cmath>
#define inf 0x3f3f3f3f
using namespace std;
int a, b, n;
int f[55];
int main()
{
    cin>> a>> b>> n;
        memset(f, 0, sizeof(f));
        //if(a==0&&b==0&&n==0) break;
        f[1] = 1;
        f[2] = 1;
        int i;
        for(i = 3; i <= 49; i++){
            f[i] = (a * f[i - 1] + b * f[i - 2]) % 7 + 7;
            f[i] = f[i] % 7;
            if(f[i] == 1 && f[i - 1] == 1) break;
        }
        i -= 2;
        f[0] = f[i];
        cout<< f[n % i]<< endl;
    return 0;
}
51nod1126 求递推序列的第N项的更多相关文章
- 51nod1126 求递推序列的第N项【递推】
		有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input 输 ... 
- [51NOD1126]求递推序列的第n项(矩阵快速幂)
		题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 存在参数a,b为负数的情况.这时候要这么处理: 根据mo ... 
- 51nod 1126 求递推序列的第N项
		1126 求递推序列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f( ... 
- 51nod 1126 求递推序列的第N项   思路:递推模拟,求循环节。详细注释
		题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ... 
- 51nod 1126 - 求递推序列的第N项 - [找规律]
		题目链接:https://cn.vjudge.net/problem/51Nod-1126 有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + ... 
- 515Nod 1126 求递推序列的第n项【矩阵快速幂】
		有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input 输 ... 
- 51Nod 1126 求递推序列的第N项(矩阵快速幂)
		#include <iostream> #include <algorithm> #include <cmath> #define MOD 7 #define N ... 
- 51nod 1126 求递推序列的第N项 && hdu - 1005 Number Sequence (求周期)
		http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 http://acm.hdu.edu.cn/showproblem ... 
- [51nod 1126] 求递推序列的第N项 - 矩阵乘法
		#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 7; struct ... 
随机推荐
- go  jwt OAuth2.0
			https://blog.csdn.net/wangshubo1989/article/details/77980316 https://blog.csdn.net/wangshubo1989/art ... 
- Git------解决右键不显示Git Bash Here问题
			步骤: 1.通过在“运行”中输入‘regedit’,打开注册表. 2.找到[HKEY_CLASSES_ROOT\Directory\Background]. 3.在[shell]下右键-新建项[ope ... 
- 【GIS】ArcGIS JS 4.X
			require(["esri/Map", "esri/views/SceneView", "esri/TileLayer/TdtMapLayer/Td ... 
- 执行RF测试只生成output.xml文件,不生成log和report文件
			命令格式: -l --log file HTML log file. Can be disabled by giving a special value `NONE`. Default: log.ht ... 
- SpringBoot(十二)-- 整合Redis
			1.pom依赖 <!-- 添加redis支持 --> <dependency> <groupId>org.springframework.boot</grou ... 
- openjdk源码阅读
			http://rednaxelafx.iteye.com/blog/1549577 http://blog.csdn.net/fancyerii/article/details/7007503 ├—a ... 
- 安装ubuntu后,你的屏幕尺寸太小,无法设置,该怎么解决
			安装完虚拟机之后,你的Ubuntu可能会在尺寸很小,(这种情况可能有,可能没有) 想要点击设置,选中Display里的分辨率下拉框,但是却因为这个窗口太大,无法点击apply按钮.悲剧啦!!! Ctr ... 
- 简述项目中优化sql的方法,从哪些方面,sql语句性能如何分析?
			查询速度慢的原因很多,常见如下几种 : .没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) .I/O吞吐量小,形成了瓶颈效应. .没有创建计算列导致查询不优化. .内存不足 .网络 ... 
- 第二步 使用Cordova 3.0(及以上版本) 创建安卓项目(2014-6-25)
			参考资料: http://www.cnblogs.com/numtech/p/3233469.html http://blog.sina.com.cn/s/blog_9e245c690101jurr. ... 
- 部署OpenStack问题汇总(七)--解决apache启动错误"httpd:Could not reliably determine..."
			今天在调试openstack的时候,重启apache,出现以下报错: [root@hctrl log]# service httpd restart 停止 httpd:[确定] 正在启动 httpd: ... 
