1788:Pell数列

1788:Pell数列

总时间限制: 
3000ms

内存限制: 
65536kB
描述
Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2)。
给出一个正整数k,要求Pell数列的第k项模上32767是多少。
输入
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000)。
输出
n行,每行输出对应一个输入。输出应是一个非负整数。
样例输入
2
1
8
样例输出
1
408
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<queue>
 4 #include<cmath>
 5 using namespace std;
 6 long long int tot=0;
 7 long long int a[10000001];
 8 long long int b[10000001];
 9 long long int ans[100000001];
10 int main()
11 {
12     int n;
13     cin>>n;
14     for(int i=1;i<=n;i++)
15     cin>>a[i];
16     b[1]=1;
17     b[2]=2;
18     for(int i=1;i<=n;i++)
19     {
20         for(int j=3;j<=a[i];j++)
21         {
22                 b[j]=(2*b[j-1]+b[j-2])%32767;
23
24         }
25     }
26     for(int i=1;i<=n;i++)
27     {
28         cout<<b[a[i]];
29         cout<<endl;
30     }
31     return 0;
32 }

时间: 2024-10-01 04:51:50

1788:Pell数列的相关文章

Pell数列

描述Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2).给出一个正整数k,要求Pell数列的第k项模上32767是多少.输入第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000).输出n行,每行输出对应一个输入.输出应是一个非负整数.样例输入 2 1 8 样例输出 1 408 源代码 #include<stdio

[NOI题库][POJ2786]Pell数列

总时间限制: 3000ms 内存限制: 65536kB 描述 Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an ? 1 + an - 2 (n > 2).给出一个正整数k,要求Pell数列的第k项模上32767是多少. 输入 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000). 输出 n行,每行输出对应一个输入.输出应是一个非负整数. 样例输入 2 1

Openjudge-NOI题库-Pell数列

题目描述 Description Pell数列a1, a2, a3, ...的定义是这样的,a1 = 1, a2 = 2, ... , an = 2 * an − 1 + an - 2 (n > 2).给出一个正整数k,要求Pell数列的第k项模上32767是多少. 输入输出格式 Input/output 输入: 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1 ≤ k < 1000000). 输出: n行,每行输出对应一个输入.输出应是一个非负整数. 输

1189:Pell数列

传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1189 [题目描述] Pell数列a1,a2,a3,... 的定义是这样的,a1=1,a2=2,...,an=2an−1+an−2(n>2) . 给出一个正整数k,要求Pell数列的第k项模上32767是多少. [输入] 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行,包括一个正整数k (1≤k<1000000). [输出] n行,每行输出对应一个输入.输出应是一个非负整数.

递归--练习8--noi1788Pell数列

递归--练习8--noi1788Pell数列 一.心得 5 1. 6 //直接递归Time Limit Exceeded 7 //那就记忆化递归 8 2. 9 直接记忆化递归后还有问题 10 a[k]=2*f(k-1)%32767+f(k-2)%32767; 11 说明这句话超出范围了,所以修改成了如下 12 a[k]=(2*(f(k-1)%32767)+f(k-2)%32767)%32767; 13 就AC了 16 #define Max 1000005 17 using namespace

第6周

6.1 函数 定义: 返回值类型 函数名(参数1类型 参数1名称,参数2类型 参数2名称...) { 语句组(即“函数体”) } 调用函数:函数名 (参数1,参数2...).对函数的调用,也是一个表达式,其值由函数内部的return语句决定. return语句的功能是结束函数的执行,并将返回值作为结果返回.返回值是常量.变量或复杂的表达式均可.如果返回值类型为void,则可以直接写return ;. return语句作为函数的出口,可以在函数中多次出现.多个return语句的返回值可以不同.在哪

用递归和非递归的方法输出斐波那契数列的第n个元素(C语言实现)

费波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数.斐波那契数列.费氏数列.黄金分割数列. 在数学上,费波那契数列是以递归的方法来定义: {\displaystyle F_{0}=0} {\displaystyle F_{1}=1} {\displaystyle F_{n}=F_{n-1}+F_{n-2}}(n≧2) 用文字来说,就是费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出.首几个费波那契系数是: 0, 1, 1, 2, 3

HDU 5783 Divide the Sequence(数列划分)

HDU 5783 Divide the Sequence(数列划分) Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description - 题目描述 Alice has a sequence A, She wants to split A into as much as possible continuous subsequences, satisfy

2015.9.11模拟赛 codevs 4159【hzwer的迷の数列】

题目描述 Description hzwer找了一个人畜无害的迷の数列…… 现在hzwer希望对这个数列进行一些操作,请你来回答hzwer的问题. 操作一:查询第i个数的大小 操作二:把第i个数的大小改成x 操作三:将整个序列反转.即把第i个数放到第n-i+1个. 输入描述 Input Description 输入数据第一行两个数n,m,表示数列长度和操作数. 第二行n个数,表示n个元素初始值. 以下m行,每行开头一个数opr,表示操作种类. opr=1,则后面接一个数i,表示查询第i个数大小.