小澳的坐标系

coordinate.cpp/c/pas

题目描述

小澳者表也,数学者景也,表动则景随矣。

小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过。

小澳的梦境中出现了一个平面直角坐标系,自原点,向四方无限延伸。

小澳在坐标系的原点,他可以向上、向左或者向右走。他可以走n步,但不能经过相同的点

小澳想知道他有多少种走法。

输入格式

输入文件名为coordinate.in。

输入文件仅第一行一个正整数n,表示小澳可以走的步数。

 

输出格式

输出文件名为coordinate.out。

输出文件共一行,输出一个正整数,表示答案(对10^9+7取模)。

 

输入输出样例1

coordinate.in

coordinate.out

2

7

【输入输出样例1说明】

从(0,0)出发走2步,共7种走法:

(0,0)->(0,1)->(0,2)

(0,0)->(0,1)->(1,1)

(0,0)->(0,1)->(-1,1)

(0,0)->(1,0)->(2,0)

(0,0)->(1,0)->(1,1)

(0,0)->(-1,0)->(-2,0)

(0,0)->(-1,0)->(-1,1)

 

输入输出样例2

coordinate.in

coordinate.out

3

17

数据规模与约定

测试点编号

n

1~2

n<=10

3~4

n<=100

5~6

n<=1000

7~8

n<=10^6

9~10

n<=10^9

————————————————————————分割线————————————————————————

分析:

看到这道题不难想到他的递推式

在上图,蓝点表示只有两种走法的点,红点表示三种走法的点,红蓝相间表示两种都有。

普通递推式如下 ( 80分 ):

F[i][0]=F[i-1][0]+F[i-1][1]*2

F[i][1]=F[i-1][0]+F[i-1][1] 

 #include "bits/stdc++.h"

 using namespace std ;
typedef long long QAQ ;
const int MOD = 1e9 + ; int main ( ) {
QAQ t1 = , t2 = , t3 = , N ;
cin >> N ;
--N ;
for ( int i= ; i<=N ; ++i ) {
t3 = ( t2 - t1 ) * + t1 * ;
t1 = t2 ;
t2 = t3 ;
}
cout << t3 << endl ;
return ;
}

但是,我们发现每一步只与上一步有关,可以建立递推关系,构造矩阵+快速幂解决。( AC )

 #include "bits/stdc++.h"

 using namespace std;
typedef long long QAQ ;
const int MOD = 1e9 + ; struct Matrix{
QAQ v[][];
Matrix ( ) { memset ( v , , sizeof ( v ) ) ; }
}base , ans ; Matrix operator*( Matrix x , Matrix y ) {
Matrix res;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
(res.v[i][j]+=(x.v[i][k]*y.v[k][j]%MOD))%=MOD;
return res;
} int main ( ) {
int N ;
scanf ( "%d" , &N ) ;
ans.v[ ][ ] = ;
base.v[ ][ ] = base.v[ ][ ] = base.v[ ][ ] = ;
base.v[ ][ ] = ;
for ( int i=N + ; i ; i>>= , base = base * base )
if ( i & ) ans = ans * base ;
printf( "%I64d\n" , ans.v[][] ) ;
return ;
}

Matrix

2016-10-03 21:42:08

 PS:本题可以进一步化简递推,可得 f ( n ) = 2 * f ( n - 1 ) + f ( n - 2 ) ,也可得到答案。

(完)

NOIP欢乐模拟赛 T2 解题报告的更多相关文章

  1. NOIP欢乐模拟赛 T1 解题报告

    小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...

  2. NOIP欢乐模拟赛 T3 解题报告

    3.小澳的葫芦 (calabash.cpp/c/pas) [题目描述] 小澳最喜欢的歌曲就是<葫芦娃>. 一日表演唱歌,他尽了洪荒之力,唱响心中圣歌. 随之,小澳进入了葫芦世界. 葫芦世界 ...

  3. 20161005 NOIP 模拟赛 T2 解题报告

    beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...

  4. 20161003 NOIP 模拟赛 T2 解题报告

    Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...

  5. 20161023 NOIP 模拟赛 T2 解题报告

    Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他 ...

  6. 【HHHOJ】NOIP模拟赛 玖 解题报告

    点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...

  7. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  8. 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱

    题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...

  9. 冲刺Noip2017模拟赛1 解题报告——五十岚芒果酱

    题1 国际象棋(chess) [问题描述] 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加2场对弈,最少参加0场对弈.每个人都有一个与其他人都不相同的等级(用一个正整数来表示).在对 ...

随机推荐

  1. Log4Net配置以及使用

    跟踪程序代码,及时发现程序的运行状态,是每个成熟的软件所必不可少的一个环节,网站发布到真实的环境之后,对于程序的运行状态,我们并不能想开发环境那也,点击调试.日志记录显示就尤为重要,在.NET中记录日 ...

  2. 【JAVA与DOM4J实现对XML文档的CRUD操作】

    一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...

  3. 【JAVA与XML、dtd约束、Schema约束】

    一.XML. (1)XML:Extensible Markup Language (2)XML是一种标记语言. (3)XML的设计宗旨是传输数据,而不是显示数据. (4)XML标签没有被预定义,即使用 ...

  4. 【PHP Cookie&&Session】

    大部分的人都知道Cookie,但是可能不了解Session,现在对这两者进行解释. 问题的提出: 有些网站会提示用户在一定的时间之内免登陆,这是用的什么技术?答案是Cookie技术. 有些购物网站会提 ...

  5. sdut1598 周游列国【简单模拟题】

    周游列国 Time Limit: 1000ms   Memory limit: 32768K  有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdutoj/p ...

  6. 【131031】jsp学习实例 (2013-10-31 15:29:28)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@ page language= ...

  7. css 妙味 总结

    技巧一: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  8. php开启mysqli扩展之后如何连接数据库

    Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件;相对于mysql有很多新的特性和优势,需要了解的朋友可以参考下 Mysqli是php5之后才有的功能,没有 ...

  9. FP-Growth算法及演示程序

    FP-Growth算法 FP-Growth(频繁模式增长)算法是韩家炜老师在2000年提出的关联分析算法,它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-Tree),但仍保留项集 ...

  10. 把浏览器的私有模式添加到VS中

    题记:在用VS进行Web开发的时候,常常希望VS的调试不会对浏览器造成固定的影响,那么使用浏览器的私有模式来启动就很有必要. 前几天SCOTT HANSELMAN分享了一个开发Web应用程序的小技巧, ...