洛谷

不知道大家做没做过传球游戏,这一题和传球游戏的转移方程几乎一样。

令\(A\)为\(1\)点,\(E\)为\(5\)点,那么\(f[i][j]\)代表第i步走到j的方案数。

\[f[i][j]=f[i−1][j+1]+f[i−1][j−1]
\]

因为题中给的是一个环,所以有几种情况。

\[if(j==8)~f[i][j]=f[i−1][1]+f[i−1][7]
\]

\[if(j==1)~f[i][j]=f[i−1][8]+f[i−1][2]
\]

还有,因为题中说,到了\(E\)点,就不会再动了。

\[if(j==4)~f[i][j]=f[i−1][3]
\]

\[if(j==6)~f[i][j]=f[i−1][7]
\]

边界很显然\(f[0][1]=1\)。但是我们注意这一题\(n≤10^7\),所以我们要滚动数组。

实际上我分析了一波,应该要用矩阵快速幂优化掉\(n\)那一维的,但是我交了一份递推代码上去也\(A\)了。

那么就不用管了,上代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
int f[2][9]={},n,t=0;
cin>>n;
f[t][1]=1;
for (int i=1;i<=n;++i) {
t=!t;
for (int j=1;j<=8;++j) {
if (j==1) f[t][j]=f[!t][8]+f[!t][j+1];
else if (j==8) f[t][j]=f[!t][j-1]+f[!t][1];
else if (j==4) f[t][j]=f[!t][j-1];
else if (j==6) f[t][j]=f[!t][j+1];
else f[t][j]=f[!t][j-1]+f[!t][j+1];
f[t][j]%=1000;
}
}
cout<<f[t][5];
return 0;
}

洛谷 P2233 [HNOI]公交车线路的更多相关文章

  1. 【模板】矩阵快速幂 洛谷P2233 [HNOI2002]公交车路线

    P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...

  2. 洛谷 P2233 [HNOI2002]公交车路线 解题报告

    P2233 [HNOI2002]公交车路线 题目背景 在长沙城新建的环城公路上一共有8个公交站,分别为A.B.C.D.E.F.G.H.公共汽车只能够在相邻的两个公交站之间运行,因此你从某一个公交站到另 ...

  3. 洛谷P4438 [HNOI/AHOI2018]道路(dp)

    题意 题目链接 Sol 每当出题人想起他出的HNOI 2018 Day2T3,他都会激动的拍打着轮椅 读题比做题用时长系列... \(f[i][a][b]\)表示从根到\(i\)的路径上,有\(a\) ...

  4. 洛谷 P2096 最佳旅游线路

    某旅游区的街道成网格状.其中东西向的街道都是旅游街,南北向的街道都是林阴道.由于游客众多,旅游街被规定为单行道,游客在旅游街上只能从西向东走,在林阴道上则既可从南向北走,也可以从北向南走. 阿龙想到这 ...

  5. [Bzoj5285][洛谷P4424][HNOI/AHOI2018]寻宝游戏(bitset)

    P4424 [HNOI/AHOI2018]寻宝游戏 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生 ...

  6. 洛谷P4425 [HNOI/AHOI2018]转盘(线段树)

    题意 题目链接 Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的. 证明不会,考场上拍了3w组没错应该就是对的吧... 首先把数组倍长一下方便枚举起 ...

  7. 洛谷P4424 [HNOI/AHOI2018]寻宝游戏(思维题)

    题意 题目链接 Sol 神仙题Orz Orz zbq爆搜70.. 考虑"与"和"或"的性质 \(0 \& 0 = 0, 1 \& 0 = 0\) ...

  8. 洛谷 P3204 [HNOI2010]公交线路

    题面 luogu 题解 矩阵快速幂\(+dp\) 其实也不是很难 先考虑朴素状压\(dp\) \(f[i][S]\) 表示最慢的车走到了\(i\),\([i, p+i-1]\)的覆盖情况 状态第一位一 ...

  9. 洛谷 2233 [HNOI2002]公交车路线

    题目戳这里 一句话题意 一个大小为8的环,求从1到5正好n步的方案数(途中不能经过5). Solution 巨说这个题目很水 应该是比较容易的DP,直接从把左边和右边的方案数加起来即可,但是有几个需要 ...

随机推荐

  1. C#.NET中使用BackgroundWorker在模态对话框中显示进度条

    这里是一个示例,其中展示了如何使用Backgroundworker对象在模态对话框中显示后台操作的实时进度条. 首先是主窗体代码: using System; using System.Collect ...

  2. IOS使用Charts

    近期项目中要做图表功能,为了降低开发量採用的是H5+ECharts来做.这里说一下IOS中怎样使用ECharts以及遇到的问题. 网络模块化单文件引入 <!DOCTYPE html> &l ...

  3. erlang四大behaviour之一gen_server(转载)

    erlang程序设计里面有个设计原则就是把你的进程构造成树,把共用代码提出来,特定功能用自己的module实现,这也就是behaviour了,应用behaviour可以减少与本身事务无关的代码量,设计 ...

  4. 小型云服务器搭建GitLab遇到的坑

    云服务商:腾讯云,搞活动买的 3年800块钱,和同时一人一台 配置:1C.1G.50G 用三年,挺划算的 项目中以前一直使用SVN作为代码版本控制,秉着程序员做到老学到老的精神,想尝试一下先进的GIT ...

  5. [复习] JAVA 遍历目录 (递归调用和非递归)

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  6. bjposition

    背景位置:background-origin:content-box;//"border-box", "padding-box", "content- ...

  7. Jmeter负载测试例子

    通过浏览器操作网站在jmeter录屏控制器显示录屏例子,并且通过这例子模拟多用户(线程)来负载测试. 工具/原料   Jmeter 浏览器 1.先在测试计划创建线程组和录制Case   1 1.1 选 ...

  8. .NET开发笔记--对config文件的操作(3)

    1.添加新节点前进行判断看是否已存在相同的属性值,若存在进行更新,不存在则进行添加操作. protected bool AddPizza() { //初始化id int newId; string f ...

  9. 蓝桥杯 第四届C/C++预赛真题(2) 马虎的算式(穷举)

    标题: 马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了. 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答案 ...

  10. 再谈iOS 7的手势滑动返回功能

    本文转载至 http://blog.csdn.net/jasonblog/article/details/28282147  之前随手写过一篇<使用UIScreenEdgePanGestureR ...