858 群鸦的盛宴

题目链接:https://buaacoding.cn/problem/858/index

思路

本题乍一眼看过去,你可能会想到使用一个二维数组A[51][51]来记录从i到j的路线数。

你很厉害,这是DP的思想。可是什么情况才用DP:分解得到子问题往往不是互相独立的。这也是DP和分治的最大区别之一。这题我从a走到b,和a之前b之后的格子完全没有关系啊!

so,冷静一下再看看,你会发现从1走到3和从2走到4其实是一样的,然后你会发现答案只与\(b-a\)有关。

举几个例子吧,1,2,3,5---卧槽,这是部分斐波那契啊,问题解决!

分析

通过举例子得到的规律只能帮你解题(这好像已经够了),有时候还有可能会错。

我们的问题是求从a到达b的路线数,令n=b-a,即求\(F(n)\)。有两种方式到达b,那就是从b-1和b-2过来,所以有\(F(n)=F(n-1)+(n-2)\)。

于是有\(F(1)=1,F(2)=2,...F(n)=F(n-1)+(n-2)\)。

另外,程序预处理数组,此题的查询复杂度为\(O(1)\)。

考点:斐波那契数列的转化与应用。

坑点:数据可能会超出int范围;请不要递归,预处理数组最佳。

参考代码

//
// Created by AlvinZH on 2017/9/19.
// Copyright (c) AlvinZH. All rights reserved.
// #include <cstdio>
using namespace std; long long F[55];
int n,a,b; int main()
{
F[1]=1;
F[2]=2;
for (int i = 3; i <= 50; i++)//预处理
F[i] = F[i-1] + F[i-2]; scanf("%d",&n);
while (n--)
{
scanf("%d%d", &a, &b);
printf("%lld\n", F[b-a]);
}
return 0;
}

2016级算法第一次练习赛-A.群鸦的盛宴的更多相关文章

  1. 2016级算法第一次练习赛-C.斐波那契进阶

    870 斐波那契进阶 题目链接:https://buaacoding.cn/problem/870/index 思路 通过读题就可以发现这不是一般的求斐波那契数列,所以用数组存下所有的答案是不现实的. ...

  2. 2016级算法第一次练习赛-F.AlvinZH的儿时梦想——机器人篇

    864 AlvinZH的儿时梦想----机器人篇 题目链接:https://buaacoding.cn/problem/868/index 思路 中等题. 判断无限玩耍: \(p\) 的值能够承担的起 ...

  3. 2016级算法第一次练习赛-E.AlvinZH的儿时回忆——蛙声一片

    864 AlvinZH的儿时回忆----蛙声一片 题目链接:https://buaacoding.cn/problem/865/index 思路 中等题.难点在于理解题意!仔细读题才能弄懂题目规则.整 ...

  4. 2016级算法第一次练习赛-D.AlvinZH的儿时回忆——跳房子

    864 AlvinZH的儿时回忆----跳房子 题目链接:https://buaacoding.cn/problem/864/index 思路 这是一道简单题,但是同样有人想复杂了,DP?大模拟?. ...

  5. 2016级算法第一次练习赛-B.朴素的中位数

    朴素的中位数 题目链接:https://buaacoding.cn/problem/846/index 分析 题意很简单,就是给定了两个从小到大排好序的数组,找出这两个数组合起来的数据中的中位数. 方 ...

  6. 2016级算法期末模拟练习赛-F.AlvinZH的青春记忆IV

    1086 AlvinZH的青春记忆IV 思路 难题,动态规划. 这是一道很有意思的题,因为它不仅卡了时间,也卡了空间,而且卡的很妙很迷. 光是理解题意已经有点难度,简化题意:两串数字序列,相等的数字定 ...

  7. 2016级算法期末模拟练习赛-E.AlvinZH的青春记忆III

    1083 AlvinZH的青春记忆III 思路 难题,二分图. 说这是一个考察二分图的题目,你可以会说"不可能",这哪里像一个二分图了!这真的是一个二分图,考察的是最小顶点覆盖. ...

  8. 2016级算法期末模拟练习赛-D.AlvinZH的序列问题

    1111 AlvinZH的序列问题 思路 中等题,动态规划. 简化题意,. 坑点一:二维int数组MLE,明显会超过内存限制,由于\(n\)最大为1e4,那么我们的dp数组最大也是1e4,考虑使用sh ...

  9. 2016级算法期末模拟练习赛-B.AlvinZH的青春记忆I

    1083 AlvinZH的青春记忆I 思路 中等题,动态规划. 简化题意,一个环上取数,数不可相邻,取取得数之和最大值. 环不好表示,可以解开变成一列数,那么答案应为下列两种情况较大者. ①:取第一个 ...

随机推荐

  1. Linux Virtualization with Xen

    Xen is the new virtualization kid on the block. It's gaining visibility and importance at a speed on ...

  2. spring4-2-bean配置-2-属性注入细节

    配置 bean,本章节中主要介绍蓝色文字部分. 配置形式:基于 XML 文件的方式:基于注解的方式 Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & 实例工厂方法).F ...

  3. 15-Call to your teacher(有向图的连通判断)

    链接:https://www.nowcoder.net/acm/contest/76/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...

  4. 如何启动jdeveloper中集成的weblogic

    1>运行jdeveloper,打开运行日志,入下图,日志最开始的红框部分就是打开weblogic的命令,将此命令复制出来执行即可打开weblogic 程序员的基础教程:菜鸟程序员

  5. (转)C#中的 Interfaces (For 初学者们)

    http://blog.sina.com.cn/s/blog_574c993d0100d59n.html

  6. scrapy定制爬虫-爬取javascript——乾颐堂

    很多网站都使用javascript...网页内容由js动态生成,一些js事件触发的页面内容变化,链接打开.甚至有些网站在没有js的情况下根本不工作,取而代之返回你一条类似"请打开浏览器js& ...

  7. [Training Video - 6] [File Reading] Using log object in the Groovy class

    Car c= new Car(log); c.print() class Car{ def log public Car(log){ this.log=log } public void print( ...

  8. CentOS7.4配置SSH登录密码与密钥身份验证踩坑

    简单记录,自用CentOS7.4虚拟机与ALiYunVPS,在配置ssh登录身份验证时碰到的问题. 阿里云VPS:因为在重置磁盘时选择了密钥对的身份验证方式,因此VPS中的CentOS7.4中的 /e ...

  9. hdu Lovekey(水题)

    #include<stdio.h> #include<string.h> ]; int main() { ],s2[]; int l1,l2,i,j,k; while(scan ...

  10. KNN算法python实现

    1 KNN 算法 knn,k-NearestNeighbor,即寻找与点最近的k个点. 2 KNN numpy实现 效果: k=1 k=2 3 numpy 广播,聚合操作. 这里求距离函数,求某点和集 ...