求和
【问题描述】
  组合数 C(n,m)是从 n 个物品中取 m 个的方案数。
  C(n,m)=(n!)/(m!(n-m)!)
  斐波那契数列 F 满足,F[0]=F[1]=1,n≥2 时 F[n]=F[n-1]+F[n-2]
  给出 n,求 C(n,0)F[0]+C(n,1)F[1]+…+C(n,n)F[n]
【输入格式】
  一行一个数 T 表示数据组数
  接下来 T 行每行一个数,表示 n
【输出格式】
  输出 T 行,每行一个数表示答案,对 10^9+7 取模
【样例输入】
  3
  2
  5
  1000
【样例输出】
  5
  89
  276439883
【数据规模和约定】
  对于 30%的数据, n<=10
  对于 60%的数据, n<=1000
  对于 100%的数据, T<=1000,n<=10^6

考场解题:
  这咋做啊计算一堆数的值,既然要用到阶乘和斐波那契数列,那
就可以先预处理出来,俩数组记录一下,然后咋做呢?苦思冥想二十
分种,我决定去上个厕所吧,观察观察忽然发现 C(n,0)和 C(n,
n)是相等的嘞,then 发现 C(n,k)和 C(n,n-k)貌似相等,看到这
感觉这题一定很神奇,研究研究吧,恩,把时间复杂度减半了,也算
是优化吧,可这对于 10^6 的数据该不过还是不过啊,不管了,先打
打 60 分吧,60 分也前两个样例对了,1000 咋也不过啊,这咋办,无
奈,打表找规律,2 5 13 34 89...
咦!! a[k]=a[k-1]*3-a[k-2]诶,又试了几组手造样例,对啊,不过数
一 大 , 一 % 就 会 出 事 , 因 为 % 着 减 可 能 会 出 负 数 , 根 据
a[k]=(a[k-1]*3-a[k-2]+2*mod)%mod,因为余数不可以是负数,根据
好像叫欧拉同余啥的吧。恩,写完以后,自我感觉良好。

期望的分:100
实际得分:100

正解:
  对于%10 的数据,一个一个计算,只要不出太大错误,没问题。
  60%得数据的话,预处理出来阶乘和斐波那切数列,枚举 1-n 进行
计算,完全不用担心回挂掉。
  100%的话, 我比较幸运, 找了找规律, 发现a[i]=a[i-1]*3-a[i-2],
但是这好像不是正解诶, 老师说答案就是输入的 n 的在斐波那切数列
中的第 F(2*n)项。差不多吧,反正找对规律了。

代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#define mod 1000000007
using namespace std;
long long a[],n,m;
int main()
{
freopen("sum.in","r",stdin);freopen("sum.out","w",stdout);
a[]=;a[]=;
for(int i=;i<=;i++)a[i]=(a[i-]*-a[i-]+*mod)%mod;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
printf("%d\n",a[n]);
}
fclose(stdin);fclose(stdout);
}

5.1 qbxt 一测 T2的更多相关文章

  1. NOI十连测 第五测 T2

    思路:考虑建立可持久化线段树,第一层维护的是i这个位置的next位置,第二层,维护的是接下来走这个字符会到哪个节点. 感觉很巧妙啊,不愧是Claris #include<algorithm> ...

  2. NOI十连测 第四测 T2

    思路:线段树套可持久化treap,可持久化treap我还是第一次听说.. 改题的时候没看数据范围..乱开数组T_T #include<algorithm> #include<cstd ...

  3. BZOJ NOI十连测 第二测 T2

    思路:20%可以搜索.. #include<algorithm> #include<cstdio> #include<cmath> #include<cstr ...

  4. BZOJ NOI十连测 第一测 T2

    思路:看到这题,就感觉是一道很熟悉的题目: http://www.cnblogs.com/qzqzgfy/p/5535821.html 只不过这题的K最多可以到N,而且边权不再只是1,考试的时候yy了 ...

  5. 5.1 qbxt 一测 T3

    反物质[问题描述] 物理学家有一种假设,世界上存在反物质,反物质遇到正常的物质会发生湮灭. 假设现在有 n 个粒子,每个粒子的种类用一个 m 以内的正整数表示.现在要将这些粒子按一定顺序放入一个封闭空 ...

  6. 5.1 qbxt 一测 T1

    禁咒检验 (3MB / 2s)[问题描述] 在古老的世界里,有一个神奇的职业叫做魔法师. 魔法师的特点是会魔法,施放魔法需要念咒语. 在古老的世界里,有一个神奇的职业叫做码农.码农的工作是帮助魔法师记 ...

  7. WC2019滚粗记

    什么?你问WC2019滚粗记在哪里? 抱歉,这篇文章鸽了. 原因? 引用神仙\(yyb\)的话. 恩,想了想还是更一点吧. Day 0 签到海星,我写了个大大的\(Cgod\)有没有人看见啊,然后被广 ...

  8. noip2018——题解&总结

    近期正在疯狂复习某些东西,这篇博客尽量年底更完……(Day2T2除外) 好了,所有的希望都破灭了,原来这就是出题人的素质.——一个被欺骗的可怜 $OIer$ 人生中倒数第三次 $noip$ (Mayb ...

  9. 【NOI 2019】同步赛 / 题解 / 感想

    非常颓写不动题怎么办…… 写下这篇博客警示自己吧…… 游记 7.16 我并不在广二参加 NOI,而是在距离广二体育馆一公里远的包间打同步赛(其实就是给写不动题找个理由) 上午身体不舒服,鸽了半天才看题 ...

随机推荐

  1. 如何优雅地停止Java进程

    目录 理解停止Java进程的本质 应该如何正确地停止Java进程 如何注册关闭钩子 使用关闭钩子的注意事项 信号量机制 总结 理解停止Java进程的本质 我们知道,Java程序的运行需要一个运行时环境 ...

  2. 2016 Multi-University Training Contest 2 A Acperience

    啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 题意: 略. 思路: 略....真分数... = =.我今天是纠结去死了.哎,继续加油,就比如gfd说的还有下一场,下下场,不要烦,不要绝望,因为,这算什么? )扔份代 ...

  3. Cg(C for Graphic)语言语义绑定方法(转)

    摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 语义绑定方法 入口函数输入\ 输出数据的 ...

  4. 笔记:JavaScript闭包

    闭包 闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰.直观的说就是形成一个不销毁的栈环境. 对于闭包,当外部函数返回之后,内部函数依然可以访问外部函数的变量 ...

  5. STL<queue>的使用

    队列是一种基本的线性数据结构.它满足先进先出(First In ,First Out)的原则. 我们可以应用这种数据结构实现很多复杂的问题.但每次要手写队列的相关函数并不省事,我们便可以应用STL中的 ...

  6. github最值得收藏的Bootstrap3后台管理框架

    1. AdminLTE AdminLTE是一个完全响应的后台管理模板.基于Bootstrap3框架.高度可定制,易于使用.适合许多屏幕分辨率从小型移动设备到大型台式机. GitHub AdminLTE ...

  7. redis的安装(图文详解)

    我这里,搭建在 继续

  8. 连接php/mysql

    1 安装php5.6 首先确保mysql已安装 ./configure --prefix=/app/php-5.6.36 --with-mysql=mysqlnd --enable-mysqlnd - ...

  9. fzu 2204 7 dp

    题目链接: fzu 2204 7 题目描述: 给出n个小球,每个小球只能涂黑色或者是白色,七个连续的不能是同种颜色,问有多少种涂色方法? 解题思路: 刚开始没有考虑到是环形的,WA的风生水起,怪我咯! ...

  10. P2614 计算器弹琴

    题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilibili.com/vide ...