NOIP欢乐模拟赛 T2 解题报告
小澳的坐标系
(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 解题报告的更多相关文章
- NOIP欢乐模拟赛 T1 解题报告
小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...
- NOIP欢乐模拟赛 T3 解题报告
3.小澳的葫芦 (calabash.cpp/c/pas) [题目描述] 小澳最喜欢的歌曲就是<葫芦娃>. 一日表演唱歌,他尽了洪荒之力,唱响心中圣歌. 随之,小澳进入了葫芦世界. 葫芦世界 ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- 20161003 NOIP 模拟赛 T2 解题报告
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...
- 20161023 NOIP 模拟赛 T2 解题报告
Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他 ...
- 【HHHOJ】NOIP模拟赛 玖 解题报告
点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱
题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...
- 冲刺Noip2017模拟赛1 解题报告——五十岚芒果酱
题1 国际象棋(chess) [问题描述] 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加2场对弈,最少参加0场对弈.每个人都有一个与其他人都不相同的等级(用一个正整数来表示).在对 ...
随机推荐
- ActiveMQ的几种集群配置
ActiveMQ是一款功能强大的消息服务器,它支持许多种开发语言,例如Java, C, C++, C#等等.企业级消息服务器无论对服务器稳定性还是速度,要求都很高,而ActiveMQ的分布式集群则能很 ...
- Android中Service 使用详解(LocalService + RemoteService)
Service 简介: Service分为本地服务(LocalService)和远程服务(RemoteService): 1.本地服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外L ...
- java 杂物间 (二) Spring Web
需要明确记住的继承关系
- 三、spinner
今天 ,看的和学的都不多,就弄了一个spinner控件而已,下面就记录一下spinner 用法吧 基本上说,使用spinner 有三个步骤 一.在布局文件里面设置spinner 控件,这个不用再多说了 ...
- windows多线程详解
转自:http://blog.csdn.net/zhouxuguang236/article/details/7775232 在一个牛人的博客上看到了这篇文章,所以就转过来了,地址是http://bl ...
- 上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地
长期以来很多新入群的菜鸟们总 是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是非常不幸的是很多菜鸟怀着一种浮躁的心态来学习 FPGA,总是急于求成. ...
- hihoCoder 1391 Countries【预处理+排序+优先队列】2016北京网络赛
题目:http://hihocoder.com/problemset/problem/1391 题目大意: A和B两个国家互射导弹,每个国家都有一个防御系统,在防御系统开启的时间内可以将到达本国的导弹 ...
- linux command file/type which/whereis
今天遇到几个命令,初见时感觉好像啊,不太能区分其具体功能和区别,因此特来记录一下. 1. file和type file: 查看文件类型 type: display information of com ...
- 在Salesforce中对Object实现Trigger的绑定
Trigger的相关属性详细解读请看如下链接: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_c ...
- 【spring bean】spring中bean的懒加载和depends-on属性设置
项目结构如下: ResourceBean.java代码: package com.it.res; import java.io.File; import java.io.FileNotFoundExc ...