5.1 qbxt 一测 T2
求和
【问题描述】
组合数 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的更多相关文章
- NOI十连测 第五测 T2
思路:考虑建立可持久化线段树,第一层维护的是i这个位置的next位置,第二层,维护的是接下来走这个字符会到哪个节点. 感觉很巧妙啊,不愧是Claris #include<algorithm> ...
- NOI十连测 第四测 T2
思路:线段树套可持久化treap,可持久化treap我还是第一次听说.. 改题的时候没看数据范围..乱开数组T_T #include<algorithm> #include<cstd ...
- BZOJ NOI十连测 第二测 T2
思路:20%可以搜索.. #include<algorithm> #include<cstdio> #include<cmath> #include<cstr ...
- BZOJ NOI十连测 第一测 T2
思路:看到这题,就感觉是一道很熟悉的题目: http://www.cnblogs.com/qzqzgfy/p/5535821.html 只不过这题的K最多可以到N,而且边权不再只是1,考试的时候yy了 ...
- 5.1 qbxt 一测 T3
反物质[问题描述] 物理学家有一种假设,世界上存在反物质,反物质遇到正常的物质会发生湮灭. 假设现在有 n 个粒子,每个粒子的种类用一个 m 以内的正整数表示.现在要将这些粒子按一定顺序放入一个封闭空 ...
- 5.1 qbxt 一测 T1
禁咒检验 (3MB / 2s)[问题描述] 在古老的世界里,有一个神奇的职业叫做魔法师. 魔法师的特点是会魔法,施放魔法需要念咒语. 在古老的世界里,有一个神奇的职业叫做码农.码农的工作是帮助魔法师记 ...
- WC2019滚粗记
什么?你问WC2019滚粗记在哪里? 抱歉,这篇文章鸽了. 原因? 引用神仙\(yyb\)的话. 恩,想了想还是更一点吧. Day 0 签到海星,我写了个大大的\(Cgod\)有没有人看见啊,然后被广 ...
- noip2018——题解&总结
近期正在疯狂复习某些东西,这篇博客尽量年底更完……(Day2T2除外) 好了,所有的希望都破灭了,原来这就是出题人的素质.——一个被欺骗的可怜 $OIer$ 人生中倒数第三次 $noip$ (Mayb ...
- 【NOI 2019】同步赛 / 题解 / 感想
非常颓写不动题怎么办…… 写下这篇博客警示自己吧…… 游记 7.16 我并不在广二参加 NOI,而是在距离广二体育馆一公里远的包间打同步赛(其实就是给写不动题找个理由) 上午身体不舒服,鸽了半天才看题 ...
随机推荐
- bzoj 4403: 序列统计【lucas+组合数学】
首先,给一个单调不降序列的第i位+i,这样就变成了单调上升序列,设原来数据范围是(l,r),改过之后变成了(l+1,r+n) 在m个数里选长为n的一个单调上升序列的方案数为\( C_m^n \),也就 ...
- Java面试必刷常见真题200+ ,让你“过五关,斩六将”,轻松入大厂
这份面试清单是我从 2015 年做 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘我在 Java 技术栈中的技术盲点,然后修复和完善它,以此来提高自己的技术水平.虽 ...
- USB转串口 FT232/PL2303芯片使用体会
现在笔记本上很少带有串口了,而串口又是做电子设计必备的通讯接口之一,好在USB转串口比较方便,市面上常用的USB转串口芯片有很多,最常见的有FT232.PL2303.CH340三种 原理:单片机的TX ...
- Zabbix-Server 添加主机
之前讲解了如何配置Zabbix 服务端和客户端,现在我们来讲解下如何在zabbix监控端添加主机 Zabbix服务端:Centos 配置 Zabbix服务端 Zabbix客户端:Centos 配置 Z ...
- jsp include
1.<%@ include file="a.jsp"%> 路径无法动态赋值,只能写成固定路径: 生成一个jsp页面,整个编译 2.<jsp:include pag ...
- 【Codeforces1139D_CF1139D】Steps to One (Mobius_DP)
Problem: Codeforces 1139D Analysis: After ACing E, I gave up D and spent the left 30 minutes chattin ...
- 洛谷 P4219 [BJOI2014]大融合
查询,就相当于先删去这条边,然后查询边的两个端点所在连通块大小,乘起来得到答案,然后再把边加回去 可以用线段树分治做 #pragma GCC optimize("Ofast") # ...
- 数论/暴力 Codeforces Round #305 (Div. 2) C. Mike and Frog
题目传送门 /* 数论/暴力:找出第一次到a1,a2的次数,再找到完整周期p1,p2,然后以2*m为范围 t1,t2为各自起点开始“赛跑”,谁落后谁加一个周期,等到t1 == t2结束 详细解释:ht ...
- printf格式化输出参数
1.类型 类型字符用以表示输出数据的类型,其格式符和意义如下表所示: 格式字符 意义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进 ...
- windows clone 迁移数据库
windows clone 迁移数据库可行.(c 盘底成复制)