吉林省信息学奥赛 2017 冬令营 Day8.T3

C 神奇的数列

总时间限制:1000ms 内存限制:128 MB


问题描述

跳蚤国王最近迷上了一个神奇的数列,Fibonacci 数列,
这个数列有一个非常神奇的性质,我们令 f(i) 表示序列中的第 i 项,
并令 f(1) =1,f(2) = 1, 那么当 i ≥ 3 的时候有 f(i) = f(i − 1) + f(i − 2).
现在跳蚤国王把一坨数放在了一个序列 a 里面,然后他要施行魔法啦 QwQ

操作一:1 l r x,
表示跳蚤国王使用魔法把 [l,r] 的数字都增加了一个x
操作二:2 l r ,
表示跳蚤国王要进行询问,问在序列中 [l,r] 这些数字对应到 Fibonacci 数列中后和是多少啊?

跳蚤国王当然是会这个问题的,但是他想考考你……
答案可能特别特别的大,所以只需要输出对 1000000007 取模后得到的
数组就行啦


输入格式

第一行两个数字 n,m,表示序列中一共有 n 个数字,并且有 m 个操作
接下来一行 n 个数字表示原序列,分别是 a 1 ,a 2 ,...,a n
接下来 m 行,第一个数字是 opt,若 opt = 1 则表示这是操作一,后
面跟上三个数字 l,r,x,表示在区间 l,r 的每个 a i 加上一个 x;若 opt = 2,
则表示这是操作二,后面跟上两个数字 l,r,即题目描述中的询问

输出格式

对于每个操作二,输出一个数字, 就是题目描述中提到的查询的那个东西

样例输入

5 3
1 1 2 1 1
2 1 5
1 2 4 2
2 2 4

样例输出

5
7

提示

最开始的时候有 a = {1,1,2,1,1}
对于第一次询问,我们要求的就是
f(a 1 ) + f(a 2 ) + f(a 3 ) + f(a 4 ) +f(a 5 ) = f(1) + f(1) + f(2) + f(1) + f(1) = 1 + 1 + 1 + 1 + 1 = 5
进行一次操作 1,
现在序列变成了 a = {1,3,4,3,1}
进行一次操作 2,
我们要求的就是 f(a 2 )+f(a 3 )+f(a 4 ) = f(3)+f(4)+f(3) = 2 + 3 + 2 = 7

数据规模与约定:
对于 40% 的数据,有 n ≤ 10,m ≤ 10, 操作一中的 x ≤ 10
对于 100% 的数据,有 n ≤ 10 ^5 ,m ≤ 10 ^5 ,操作一中的 x ≤ 10 ^9


实现代码

#include<cstdio>

using namespace std;
int ci,l,r,x,m,n,k,ans[100000],kim[100005],f[100005];
int main()
{
    freopen("C.in","r",stdin);
    freopen("C.out","w",stdout);
    scanf("%d %d",&n,&m);
    f[1]=f[2]=1;
    for(int mi=3;mi<=100000;mi++){
        f[mi]=f[mi-1]+f[mi-2];
    }
    for(int mi=1;mi<=n;mi++)
        scanf("%d",&kim[mi]);
    ci=0;
    for(int mi=0;mi<m;mi++){
        scanf("%d",&k);
        if(k==1){
            scanf("%d %d %d",&l,&r,&x);
                for(int ni=l;ni<=r;ni++){
                    kim[ni]+=x;
                }
        }
        if(k==2){
            ci=ci+1;
            ans[ci]=0;
            scanf("%d %d",&l,&r);
            for(int ni=l;ni<=r;ni++)
                ans[ci]=ans[ci]+f[kim[ni]]%1000000007;
        }
    }
    if(ci>0)
        for(int mi=1;mi<=ci;mi++)
            printf("%d\n",ans[mi]);
    return 0;
}


题解
模拟题还拿不到分数就真的可以去狗带了,但是我也就拿到送出去的一部分分数……
讲道理嘛!!
正解不就是再用矩阵乘法加速嘛…我也知道就是没用啊(那还说什么)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,667评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,361评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,700评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,027评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,988评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,230评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,705评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,366评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,496评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,405评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,453评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,725评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,803评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,015评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,514评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,111评论 2 341

推荐阅读更多精彩内容

  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,672评论 0 11
  • //作者:JRZAlan //备注:第一次做简书,希望能对大家起到帮助。 这是对一些计算机编程语言的一些英语单词,...
    JRZAlan阅读 16,554评论 0 77
  • 有人说”想生2胎,必须有100万以上的现金存款,至少有一套房,无贷。否则,小康户直接变成五保户“。 经过自己的亲身...
    溪边杜若阅读 411评论 1 1
  • 展浩
    展浩阅读 165评论 0 0
  • 让小说引人入胜的方法(未特别注明的,“小说”皆指短篇小说”): 第一种:标题要引人注目,激发联想,并富于刺激性。如...
    吴偶阅读 671评论 0 5